From 8758a6a9ed042e7f80e7da8ffeee5b14009313d4 Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 21 Sep 2024 13:06:27 -0700 Subject: [PATCH 01/23] nuke 1 --- .github/ISSUE_TEMPLATE/bug_report.md | 38 - .github/ISSUE_TEMPLATE/feature_request.md | 20 - .github/workflows/book.yaml | 49 - .github/workflows/mdbook.yml | 60 - Cargo.toml | 17 +- README.md | 95 +- assets/logos/excalibur_logo_2.png | Bin 4842 -> 0 bytes assets/logos/excalibur_logo_archive.png | Bin 1956 -> 0 bytes configs/dca/dca_static.toml | 58 - configs/dca/debug.toml | 63 - configs/dca/static.toml | 63 - configs/dca/vol_sweep.toml | 65 - configs/momentum/static.toml | 54 - configs/rmm_vol_targeting/static.toml | 61 - configs/v3/static.toml | 95 - configs/v3/sweep.toml | 69 - configs/volatility_targeting/static.toml | 64 - configs/volatility_targeting/vol_sweep.toml | 65 - crates/analysis/Cargo.toml | 27 - crates/analysis/backtest_1000_days.png | Bin 897600 -> 0 bytes crates/analysis/plot_figs.png | Bin 658217 -> 0 bytes crates/analysis/src/lib.rs | 182 - crates/analysis/src/reader.rs | 120 - crates/analysis/src/tests/mod.rs | 217 -- crates/analysis/src/tests/rmm_analysis.rs | 245 -- crates/analysis/src/unpacker.rs | 165 - crates/analysis/src/visualize/mod.rs | 92 - .../analysis/src/visualize/plots/heatmap.rs | 99 - crates/analysis/src/visualize/plots/line.rs | 61 - crates/analysis/src/visualize/plots/mod.rs | 56 - .../src/visualize/plots/statistical.rs | 184 - crates/analysis/test_data/test_output.png | Bin 72594 -> 0 bytes crates/bindings/Cargo.toml | 10 - crates/bindings/src/arb_math.rs | 1290 ------- crates/bindings/src/arbiter_token.rs | 1553 -------- crates/bindings/src/atomic_v2.rs | 3055 --------------- crates/bindings/src/bisection_lib.rs | 74 - crates/bindings/src/coin.rs | 1368 ------- crates/bindings/src/dfmm.rs | 2166 ----------- crates/bindings/src/dfmm_init.rs | 3212 ---------------- crates/bindings/src/dfmm_set_up.rs | 2633 ------------- crates/bindings/src/dynamic_param_lib.rs | 150 - crates/bindings/src/erc20.rs | 1307 ------- crates/bindings/src/fixed_point_math_lib.rs | 125 - crates/bindings/src/g3m.rs | 1357 ------- crates/bindings/src/g3m_extended_lib.rs | 74 - crates/bindings/src/g3m_lib.rs | 123 - crates/bindings/src/g3m_set_up.rs | 2830 -------------- crates/bindings/src/g3m_solver.rs | 2708 ------------- crates/bindings/src/gaussian.rs | 305 -- crates/bindings/src/i_strategy.rs | 1102 ------ crates/bindings/src/idfmm.rs | 1794 --------- crates/bindings/src/ierc721_token_receiver.rs | 177 - crates/bindings/src/invariant.rs | 148 - crates/bindings/src/lex.rs | 780 ---- crates/bindings/src/lib.rs | 49 - crates/bindings/src/liquid_exchange.rs | 250 -- crates/bindings/src/log_normal.rs | 1513 -------- .../bindings/src/log_normal_extended_lib.rs | 74 - crates/bindings/src/log_normal_lib.rs | 125 - crates/bindings/src/log_normal_math.rs | 74 - crates/bindings/src/log_normal_set_up.rs | 2995 --------------- crates/bindings/src/log_normal_solver.rs | 3398 ----------------- crates/bindings/src/lp_token.rs | 1854 --------- crates/bindings/src/mock_erc20.rs | 1526 -------- crates/bindings/src/mock_erc721.rs | 1527 -------- crates/bindings/src/mock_strategy.rs | 1165 ------ crates/bindings/src/portfolio_tracker.rs | 342 -- crates/bindings/src/safe_transfer_lib.rs | 125 - crates/bindings/src/scaling_lib.rs | 72 - crates/bindings/src/set_up.rs | 2557 ------------- crates/bindings/src/shared_types.rs | 72 - crates/bindings/src/signed_wad_math_lib.rs | 125 - crates/bindings/src/strategy_lib.rs | 74 - crates/bindings/src/strategy_like.rs | 531 --- crates/bindings/src/token_like.rs | 141 - crates/bindings/src/units.rs | 72 - crates/bindings/src/usdc.rs | 347 -- crates/clients/Cargo.toml | 26 - crates/clients/readme.md | 3 - crates/clients/src/client.rs | 204 - crates/clients/src/dev.rs | 187 - crates/clients/src/ledger/mod.rs | 267 -- crates/clients/src/ledger/types.rs | 65 - crates/clients/src/lib.rs | 9 - crates/clients/src/protocol/mod.rs | 401 -- crates/clients/src/protocol/pool.rs | 31 - crates/dfmm/Cargo.toml | 43 - crates/dfmm/src/agent.rs | 65 - crates/dfmm/src/agents/base/block_admin.rs | 81 - crates/dfmm/src/agents/base/mod.rs | 8 - crates/dfmm/src/agents/base/price_changer.rs | 331 -- crates/dfmm/src/agents/base/token_admin.rs | 74 - crates/dfmm/src/agents/mod.rs | 84 - .../portfolio_management/base/arbitrageur.rs | 132 - .../agents/portfolio_management/base/mod.rs | 3 - .../base/parameter_manager.rs | 338 -- .../g3m/dca_g3m_liquidity_provider.rs | 131 - .../portfolio_management/g3m/dca_swapper.rs | 194 - .../g3m/g3m_arbitrageur.rs | 260 -- .../g3m/g3m_liquidity_provider.rs | 126 - .../agents/portfolio_management/g3m/mod.rs | 84 - .../lognormal/ln_arbitrageur.rs | 279 -- .../lognormal/ln_liquidity_provider.rs | 144 - .../portfolio_management/lognormal/mod.rs | 45 - .../src/agents/portfolio_management/mod.rs | 5 - crates/dfmm/src/configuration.rs | 40 - crates/dfmm/src/engine.rs | 388 -- crates/dfmm/src/lib.rs | 91 - crates/dfmm/src/portfolio/coin.rs | 76 - crates/dfmm/src/portfolio/coin_list.rs | 163 - crates/dfmm/src/portfolio/mod.rs | 135 - crates/dfmm/src/portfolio/nwd.rs | 252 -- crates/dfmm/src/portfolio/position.rs | 663 ---- crates/dfmm/src/portfolio/weight.rs | 419 -- crates/dfmm/src/rmm.rs | 393 -- crates/dfmm/src/scenarios.rs | 186 - crates/dfmm/src/settings/mod.rs | 117 - crates/dfmm/src/settings/parameters.rs | 72 - documentation/Cargo.toml | 14 - documentation/build.rs | 8 - documentation/notebooks/geometric_mean.nb | 2256 ----------- documentation/notebooks/log_normal.nb | 2296 ----------- documentation/src/SUMMARY.md | 19 - documentation/src/app/architecture.md | 38 - documentation/src/app/development/index.md | 16 - documentation/src/app/index.md | 28 - documentation/src/app/ledger.md | 69 - documentation/src/assets/HMVC.png | Bin 590451 -> 0 bytes documentation/src/assets/MVC.png | Bin 577581 -> 0 bytes documentation/src/assets/Mediator.png | Bin 549504 -> 0 bytes documentation/src/contracts/architecture.md | 1 - documentation/src/contracts/index.md | 39 - .../geometric_mean.md | 239 -- .../dynamic_function_market_makers/index.md | 54 - .../dynamic_function_market_makers/linear.md | 10 - .../log_normal.md | 292 -- .../notation_and_terminology.md | 102 - documentation/src/index.md | 7 - documentation/src/lib.rs | 1 - .../src/simulation/agents/arbitrageur.md | 53 - documentation/src/simulation/agents/index.md | 26 - documentation/src/simulation/analysis.md | 41 - documentation/src/simulation/configuration.md | 1 - .../src/simulation/dollar_cost_averaging.md | 55 - documentation/src/simulation/index.md | 47 - .../src/simulation/volatility_targeting.md | 72 - documentation/src/strategies/index.md | 23 - documentation/tests/skeptic.rs | 1 - src/components/chart/mod.rs | 114 +- src/components/system.rs | 26 +- src/controller/portfolio/monolithic/create.rs | 1007 ----- .../portfolio/monolithic/inventory.rs | 292 -- .../portfolio/monolithic/metrics.rs | 82 - src/controller/portfolio/monolithic/mod.rs | 435 +-- src/controller/portfolio/monolithic/view.rs | 304 +- src/controller/settings/mod.rs | 32 +- src/controller/settings/signers.rs | 207 - src/loader.rs | 165 +- src/main.rs | 37 +- src/middleware.rs | 83 +- src/model/mod.rs | 153 +- src/model/portfolio.rs | 2374 +----------- src/model/user.rs | 13 +- src/view/portfolio_view.rs | 234 +- 165 files changed, 56 insertions(+), 67658 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 .github/workflows/book.yaml delete mode 100644 .github/workflows/mdbook.yml delete mode 100644 assets/logos/excalibur_logo_2.png delete mode 100644 assets/logos/excalibur_logo_archive.png delete mode 100644 configs/dca/dca_static.toml delete mode 100644 configs/dca/debug.toml delete mode 100644 configs/dca/static.toml delete mode 100644 configs/dca/vol_sweep.toml delete mode 100644 configs/momentum/static.toml delete mode 100644 configs/rmm_vol_targeting/static.toml delete mode 100644 configs/v3/static.toml delete mode 100644 configs/v3/sweep.toml delete mode 100644 configs/volatility_targeting/static.toml delete mode 100644 configs/volatility_targeting/vol_sweep.toml delete mode 100644 crates/analysis/Cargo.toml delete mode 100644 crates/analysis/backtest_1000_days.png delete mode 100644 crates/analysis/plot_figs.png delete mode 100644 crates/analysis/src/lib.rs delete mode 100644 crates/analysis/src/reader.rs delete mode 100644 crates/analysis/src/tests/mod.rs delete mode 100644 crates/analysis/src/tests/rmm_analysis.rs delete mode 100644 crates/analysis/src/unpacker.rs delete mode 100644 crates/analysis/src/visualize/mod.rs delete mode 100644 crates/analysis/src/visualize/plots/heatmap.rs delete mode 100644 crates/analysis/src/visualize/plots/line.rs delete mode 100644 crates/analysis/src/visualize/plots/mod.rs delete mode 100644 crates/analysis/src/visualize/plots/statistical.rs delete mode 100644 crates/analysis/test_data/test_output.png delete mode 100644 crates/bindings/Cargo.toml delete mode 100644 crates/bindings/src/arb_math.rs delete mode 100644 crates/bindings/src/arbiter_token.rs delete mode 100644 crates/bindings/src/atomic_v2.rs delete mode 100644 crates/bindings/src/bisection_lib.rs delete mode 100644 crates/bindings/src/coin.rs delete mode 100644 crates/bindings/src/dfmm.rs delete mode 100644 crates/bindings/src/dfmm_init.rs delete mode 100644 crates/bindings/src/dfmm_set_up.rs delete mode 100644 crates/bindings/src/dynamic_param_lib.rs delete mode 100644 crates/bindings/src/erc20.rs delete mode 100644 crates/bindings/src/fixed_point_math_lib.rs delete mode 100644 crates/bindings/src/g3m.rs delete mode 100644 crates/bindings/src/g3m_extended_lib.rs delete mode 100644 crates/bindings/src/g3m_lib.rs delete mode 100644 crates/bindings/src/g3m_set_up.rs delete mode 100644 crates/bindings/src/g3m_solver.rs delete mode 100644 crates/bindings/src/gaussian.rs delete mode 100644 crates/bindings/src/i_strategy.rs delete mode 100644 crates/bindings/src/idfmm.rs delete mode 100644 crates/bindings/src/ierc721_token_receiver.rs delete mode 100644 crates/bindings/src/invariant.rs delete mode 100644 crates/bindings/src/lex.rs delete mode 100644 crates/bindings/src/lib.rs delete mode 100644 crates/bindings/src/liquid_exchange.rs delete mode 100644 crates/bindings/src/log_normal.rs delete mode 100644 crates/bindings/src/log_normal_extended_lib.rs delete mode 100644 crates/bindings/src/log_normal_lib.rs delete mode 100644 crates/bindings/src/log_normal_math.rs delete mode 100644 crates/bindings/src/log_normal_set_up.rs delete mode 100644 crates/bindings/src/log_normal_solver.rs delete mode 100644 crates/bindings/src/lp_token.rs delete mode 100644 crates/bindings/src/mock_erc20.rs delete mode 100644 crates/bindings/src/mock_erc721.rs delete mode 100644 crates/bindings/src/mock_strategy.rs delete mode 100644 crates/bindings/src/portfolio_tracker.rs delete mode 100644 crates/bindings/src/safe_transfer_lib.rs delete mode 100644 crates/bindings/src/scaling_lib.rs delete mode 100644 crates/bindings/src/set_up.rs delete mode 100644 crates/bindings/src/shared_types.rs delete mode 100644 crates/bindings/src/signed_wad_math_lib.rs delete mode 100644 crates/bindings/src/strategy_lib.rs delete mode 100644 crates/bindings/src/strategy_like.rs delete mode 100644 crates/bindings/src/token_like.rs delete mode 100644 crates/bindings/src/units.rs delete mode 100644 crates/bindings/src/usdc.rs delete mode 100644 crates/clients/Cargo.toml delete mode 100644 crates/clients/readme.md delete mode 100644 crates/clients/src/client.rs delete mode 100644 crates/clients/src/dev.rs delete mode 100644 crates/clients/src/ledger/mod.rs delete mode 100644 crates/clients/src/ledger/types.rs delete mode 100644 crates/clients/src/lib.rs delete mode 100644 crates/clients/src/protocol/mod.rs delete mode 100644 crates/clients/src/protocol/pool.rs delete mode 100644 crates/dfmm/Cargo.toml delete mode 100644 crates/dfmm/src/agent.rs delete mode 100644 crates/dfmm/src/agents/base/block_admin.rs delete mode 100644 crates/dfmm/src/agents/base/mod.rs delete mode 100644 crates/dfmm/src/agents/base/price_changer.rs delete mode 100644 crates/dfmm/src/agents/base/token_admin.rs delete mode 100644 crates/dfmm/src/agents/mod.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/base/arbitrageur.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/base/mod.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/base/parameter_manager.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/g3m/dca_g3m_liquidity_provider.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/g3m/dca_swapper.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/g3m/g3m_arbitrageur.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/g3m/g3m_liquidity_provider.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/g3m/mod.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/lognormal/ln_arbitrageur.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/lognormal/ln_liquidity_provider.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/lognormal/mod.rs delete mode 100644 crates/dfmm/src/agents/portfolio_management/mod.rs delete mode 100644 crates/dfmm/src/configuration.rs delete mode 100644 crates/dfmm/src/engine.rs delete mode 100644 crates/dfmm/src/lib.rs delete mode 100644 crates/dfmm/src/portfolio/coin.rs delete mode 100644 crates/dfmm/src/portfolio/coin_list.rs delete mode 100644 crates/dfmm/src/portfolio/mod.rs delete mode 100644 crates/dfmm/src/portfolio/nwd.rs delete mode 100644 crates/dfmm/src/portfolio/position.rs delete mode 100644 crates/dfmm/src/portfolio/weight.rs delete mode 100644 crates/dfmm/src/rmm.rs delete mode 100644 crates/dfmm/src/scenarios.rs delete mode 100644 crates/dfmm/src/settings/mod.rs delete mode 100644 crates/dfmm/src/settings/parameters.rs delete mode 100644 documentation/Cargo.toml delete mode 100644 documentation/build.rs delete mode 100644 documentation/notebooks/geometric_mean.nb delete mode 100644 documentation/notebooks/log_normal.nb delete mode 100644 documentation/src/SUMMARY.md delete mode 100644 documentation/src/app/architecture.md delete mode 100644 documentation/src/app/development/index.md delete mode 100644 documentation/src/app/index.md delete mode 100644 documentation/src/app/ledger.md delete mode 100644 documentation/src/assets/HMVC.png delete mode 100644 documentation/src/assets/MVC.png delete mode 100644 documentation/src/assets/Mediator.png delete mode 100644 documentation/src/contracts/architecture.md delete mode 100644 documentation/src/contracts/index.md delete mode 100644 documentation/src/dynamic_function_market_makers/geometric_mean.md delete mode 100644 documentation/src/dynamic_function_market_makers/index.md delete mode 100644 documentation/src/dynamic_function_market_makers/linear.md delete mode 100644 documentation/src/dynamic_function_market_makers/log_normal.md delete mode 100644 documentation/src/dynamic_function_market_makers/notation_and_terminology.md delete mode 100644 documentation/src/index.md delete mode 100644 documentation/src/lib.rs delete mode 100644 documentation/src/simulation/agents/arbitrageur.md delete mode 100644 documentation/src/simulation/agents/index.md delete mode 100644 documentation/src/simulation/analysis.md delete mode 100644 documentation/src/simulation/configuration.md delete mode 100644 documentation/src/simulation/dollar_cost_averaging.md delete mode 100644 documentation/src/simulation/index.md delete mode 100644 documentation/src/simulation/volatility_targeting.md delete mode 100644 documentation/src/strategies/index.md delete mode 100644 documentation/tests/skeptic.rs delete mode 100644 src/controller/portfolio/monolithic/create.rs delete mode 100644 src/controller/portfolio/monolithic/inventory.rs delete mode 100644 src/controller/portfolio/monolithic/metrics.rs delete mode 100644 src/controller/settings/signers.rs diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index dd84ea782..000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index bbcbbe7d6..000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/book.yaml b/.github/workflows/book.yaml deleted file mode 100644 index 2321ef3c1..000000000 --- a/.github/workflows/book.yaml +++ /dev/null @@ -1,49 +0,0 @@ -name: book - -concurrency: - cancel-in-progress: true - group: ${{github.workflow}}-${{github.ref}} - -on: - push: - branches: [main] - pull_request: - branches: [main] - - -jobs: - install: - name: Install and Test - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Install mdbook - run: | - cd documentation - mkdir mdbook - curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.14/mdbook-v0.4.14-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook - echo "$GITHUB_WORKSPACE/documentation/mdbook" >> $GITHUB_PATH - - - name: Install mdbook-template - run: | - cd documentation - mkdir mdbook-template - curl -sSL https://github.com/sgoudham/mdbook-template/releases/latest/download/mdbook-template-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook-template - echo `pwd`/mdbook-template >> $GITHUB_PATH - - - name: Install rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.75.0 - override: true - - - name: Install mdbook-katex - run: | - cargo install mdbook-katex - echo "$HOME/.cargo/bin" >> $GITHUB_PATH - - - name: Run tests - run: | - cd documentation - mdbook test diff --git a/.github/workflows/mdbook.yml b/.github/workflows/mdbook.yml deleted file mode 100644 index 40b1fb49f..000000000 --- a/.github/workflows/mdbook.yml +++ /dev/null @@ -1,60 +0,0 @@ -# Sample workflow for building and deploying a mdBook site to GitHub Pages -# -# To get started with mdBook see: https://rust-lang.github.io/mdBook/index.html -# -name: Deploy mdBook site to Pages - -on: - # Runs on pushes targeting the default branch - push: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - env: - MDBOOK_VERSION: 0.4.36 - steps: - - uses: actions/checkout@v4 - - name: Install mdBook - run: | - curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf -y | sh - rustup update - cargo install --version ${MDBOOK_VERSION} mdbook - - name: Setup Pages - id: pages - uses: actions/configure-pages@v4 - - name: Build with mdBook - run: mdbook build - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - with: - path: ./book - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/Cargo.toml b/Cargo.toml index 4a2fa80a1..62b4d4096 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = ["crates/*", "documentation"] +members = [] [package] name = "excalibur" @@ -13,10 +13,6 @@ name = "excalibur" path = "src/main.rs" [workspace.dependencies] -# Local -bindings = { path = "./crates/bindings", version = "0.1.0" } -clients = { path = "./crates/clients", version = "0.1.0" } -dfmm = { path = "./crates/dfmm", version = "0.1.0" } # External arbiter-bindings = "0.1.5" @@ -30,7 +26,7 @@ revm = { version = "5.0.0", features = ["ethersdb", "std", "serde"] } reqwest = "0.11.24" ## Config and parsing -serde = "=1.0.197" +serde = "=1.0.203" serde_json = "=1.0.114" serde_with = { version = "3.6.1", features = ["chrono_0_4"] } config = "0.14.0" @@ -44,7 +40,7 @@ tracing = "=0.1.40" tracing-subscriber = { version = "=0.3.18", features = ["env-filter"] } tracing-futures = { version = "=0.2.5", default-features = false } anyhow = "=1.0.80" -thiserror = "=1.0.57" +thiserror = "=1.0.61" itertools = "0.12.1" rand = "=0.8.5" @@ -69,11 +65,6 @@ directories-next = "=2.0.0" chrono = { version = "0.4.34", features = ["serde"] } [dependencies] -# Local -bindings.workspace = true -clients.workspace = true -dfmm.workspace = true - arbiter-bindings.workspace = true arbiter-core.workspace = true @@ -138,7 +129,7 @@ resources = ["assets/"] icon = ["assets/logos/excalibur_logo_2.png"] # macOS specific -category = "public.app-category.finance" +category = "public.app-category.utilities" copyright = "Copyright (c) 2024 Primitive Bits, Inc." minimum_system_version = "10.14" osx_url_schemes = ["xyz.primitive.excalibur"] diff --git a/README.md b/README.md index 0ef292837..c21fffc5a 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,12 @@ # Excalibur -Excalibur is an Ethereum Application Client optimized for speed and security. +Excalibur is a native desktop client for smart contracts. -## Use case -Use Excalibur to directly interface with applications deployed on EVM networks. +## Build & Run Locally + +```bash +cargo run ui +``` ## Building the Windows .msi installer @@ -18,94 +21,12 @@ We use `cargo-bundle` to build MacOS and Linux bundles, but have not tested Exca 1. Run `cargo bundle --target {target}`. target should match rust compiler targets. +## UI -## Ethereum Application Client - -### Problem -Interacting with smart contracts that are deployed on Ethereum and other EVM blockchains is delivered through a fragmented technology stack written in multiple different languages and often hosted in a browser website. This creates centralization, expands attack vectors, and negatively impacts performance. - -### Solution -Excalibur is an Ethereum Application Client which vertically integrates all components of the EVM tech stack into one package. This enables end users to directly interface with even the lowest parts of the stack, e.g. Ethereum nodes. It also empowers existing capabilities to be more performant, for example, transaction simulation, fetching blockchain data, and transaction execution. - -### Journal -You will need to `cargo install mdbook` and `cargo install mdbook-katex` to be able to render the journal properly. -To see the journal you can run from the root directory: -```bash -mdbook serve journal -``` -and visit `localhost:3000` in your browser. - -## Dependencies -- [Anvil](https://github.com/foundry-rs/foundry) is installed and available in `$PATH`. -- [Forge](https://github.com/foundry-rs/foundry) is installed and available in `$PATH`. -- [Arbiter](https://github.com/primitivefinance/arbiter) is installed and available in `$PATH`. - -## Installation part 1: rust - -```bash -cargo install --path . -``` - -## Installation part 2: foundry dependencies, artifacts, and bindings - -There is one (let's keep it that way!) dependency: primitivefinance/solstat. This has its own dependencies forge-std and solmate, which we also use. Make sure to use forge to install this prior to building the contracts. - -```bash -make -``` - -## Run - -### Application -```bash -cargo run ui -``` - -### Simulation -```bash -cargo run simulate -``` - -## Project layout -- assets/ - Static assets used in application -- benches/ - Benchmarks for all crates -- bin - CLI entrypoint -- configs/ - Simulation configurations -- crates/ - All rust code -- journal/ - Team knowledge corpus -- lib/ - Git submodule dependencies -- src/ - Smart contracts - -## Architecture - -Excalibur is a full-stack client for interacting with EVM blockchain applications in simulated and live environments. -- 100% written in Rust. -- User interface is built using the [iced](https://github.com/iced-rs/iced) framework. -- Excalibur's simulation engine is powered by [Arbiter](https://github.com/primitivefinance/arbiter), a performant & open-source EVM simulation framework. -- Excalibur implements its own simulation management framework and communicates with Arbiter via an arbiter client. When combined, Excalibur is capable of running parallelized agent based simulations for any integrated ABS module. -- Excalibur integrates various RPC client connections to enable live transaction execution in the application, including a "dev" client that runs Anvil instances. - - -## UI Components - -Excalibur only has a few underlying primitives that can be chosen from to construct color and text. +Excalibur uses its own component library for the UI elements. ![](./assets/excalibur_ui_components.png) -## Future - -Excalibur's fully vertical application design makes it easy to plug in more components of the Ethereum stack. In the future, Excalibur will be able to easily connect to local RETH nodes. - -## Documentation - -if you have mdbook installed you can run - - ```bash - mdbook serve - ``` -from the root of the repository to see our living documentation of our though processes and development. This is by no means proffesional or complete more so a compilation of the teams notes and journal throughout the development process. - -[Telegram](https://t.me/+9wgBbuoh79M0ZjZh) ## Disclaimer > Excalibur is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software. \ No newline at end of file diff --git a/assets/logos/excalibur_logo_2.png b/assets/logos/excalibur_logo_2.png deleted file mode 100644 index 7e20cce3b8f063dc4acf8fbbd792ea041ba82875..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4842 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 diff --git a/configs/dca/dca_static.toml b/configs/dca/dca_static.toml deleted file mode 100644 index fe1ef90cd..000000000 --- a/configs/dca/dca_static.toml +++ /dev/null @@ -1,58 +0,0 @@ -scenario = "Dca" -output_directory = "analysis/dca/linear_dca/static" - -[agent.block_admin.BlockAdmin] -timestep_size = 15 - -[agent.token_admin.TokenAdmin.arbx] -name = "Arbiter Token X" -symbol = "ARBX" -decimals = 18 - -[agent.token_admin.TokenAdmin.arby] -name = "Arbiter Token Y" -symbol = "ARBY" -decimals = 18 - -# Price process parameters -[agent.price_changer.PriceChanger] -# True is we want to use historical daily average price data -backtest = false -# The seed to use (optional) -seed = 2 -# The number of steps in the process -# num_steps = 1000 -num_steps = 1825 -# The number of distinct paths to use -num_paths = 1 -# The initial price of the asset -initial_price.fixed = 1.0 -# The start time of the process -t_0.fixed = 0.0 -# The end time of the process -t_n.fixed = 1.0 -## Parameters for the type of process to use. -# # The drift for GBM -process.GBM.drift.fixed = 0.1 -# # The volatility for GBM -process.GBM.volatility.fixed = 0.35 -# process.OU.mean.fixed = 1.0 -# The volatility for GBM -#process.OU.volatility.fixed = 0.1 -# The mean reversion rate for OU -#process.OU.theta.fixed = 10 - -# Liquidity provider settings -[agent.dca_swapper.DcaSwapper] -num_swaps.fixed = 12 -start_timestamp = 15 -end_timestamp = 30_000 -initial_balance = 1.0 -swap_direction = false - -[agent.g3m_lp.DcaG3mLiquidityProvider] -# The amount of `token_x` to provide in ether -initial_x_amount.fixed = 100 -# The initial price of the pair -initial_price.fixed = 1.0 -end_timestamp.fixed = 30_000 diff --git a/configs/dca/debug.toml b/configs/dca/debug.toml deleted file mode 100644 index 8d7755d59..000000000 --- a/configs/dca/debug.toml +++ /dev/null @@ -1,63 +0,0 @@ -simulation = "DynamicWeights" -output_directory = "analysis/dca/debug" - -[agent.block_admin.BlockAdmin] -timestep_size = 15 - -[agent.token_admin.TokenAdmin.arbx] -name = "Arbiter Token X" -symbol = "ARBX" -decimals = 18 - -[agent.token_admin.TokenAdmin.arby] -name = "Arbiter Token Y" -symbol = "ARBY" -decimals = 18 - -# Price process parameters -[agent.price_changer.PriceChanger] -# The seed to use (optional) -seed = 1 -# The number of steps in the process -num_steps = 20 -# The number of distinct paths to use -num_paths = 1 -# The initial price of the asset -initial_price.fixed = 1.0 -# The start time of the process -t_0.fixed = 0.0 -# The end time of the process -t_n.fixed = 0.002 -## Parameters for the type of process to use. -# The drift for GBM -process.GBM.drift.fixed = 0.1 -# The volatility for GBM -process.GBM.volatility.fixed = 0.35 - -# Weight settings -[agent.weight_changer.WeightChanger] -# The weight for the `token_x` in the pool -# `weight_y = 1 - weight_x` -initial_weight_x.fixed = 0.01 -# The swap fee in BPs -fee.fixed = 30 -## Dollar cost averaging specialty settings -# The final weight to reach -specialty.DollarCostAveraging.end_weight = 0.99 -# The amount of time to reach the final weight (in seconds) -specialty.DollarCostAveraging.end_timestamp = 14985 # One before very end - -# Liquidity provider settings -[agent.lp.LiquidityProvider] -# The amount of `token_x` to provide in ether -x_liquidity.fixed = 0.01 # SINCE WE ARE SETTINGS THE WEIGHT TO 0.01 AT THE START THIS WILL BE 1 ETH TOTAL LIQUIDITY -# The initial price of the pair -initial_price.fixed = 1.0 - -# Swapper settings -[agent.swapper.Swapper] -num_swaps.fixed = 12 -start_timestamp = 15 -end_timestamp = 15000 -initial_balance = 1.0 -swap_direction = false \ No newline at end of file diff --git a/configs/dca/static.toml b/configs/dca/static.toml deleted file mode 100644 index 870dcb715..000000000 --- a/configs/dca/static.toml +++ /dev/null @@ -1,63 +0,0 @@ -simulation = "DynamicWeights" -output_directory = "analysis/dca/static" - -[agent.block_admin.BlockAdmin] -timestep_size = 15 - -[agent.token_admin.TokenAdmin.arbx] -name = "Arbiter Token X" -symbol = "ARBX" -decimals = 18 - -[agent.token_admin.TokenAdmin.arby] -name = "Arbiter Token Y" -symbol = "ARBY" -decimals = 18 - -# Price process parameters -[agent.price_changer.PriceChanger] -# The seed to use (optional) -seed = 1 -# The number of steps in the process -num_steps = 1000 -# The number of distinct paths to use -num_paths = 10 -# The initial price of the asset -initial_price.fixed = 1.0 -# The start time of the process -t_0.fixed = 0.0 -# The end time of the process -t_n.fixed = 0.1 -## Parameters for the type of process to use. -# The drift for GBM -process.GBM.drift.fixed = 0.1 -# The volatility for GBM -process.GBM.volatility.fixed = 0.35 - -# Portfolio manager settings -[agent.portfolio_manager.G3mPortfolioManager] -# The weight for the `token_x` in the pool -# `weight_y = 1 - weight_x` -initial_weight_x.fixed = 0.01 -# The swap fee in BPs -fee.fixed = 30 -## Dollar cost averaging specialty settings -# The final weight to reach -specialty.DollarCostAveraging.end_weight = 0.99 -# The amount of time to reach the final weight (in seconds) -specialty.DollarCostAveraging.end_timestamp = 14985 # One before very end - -# Liquidity provider settings -[agent.lp.LiquidityProvider] -# The amount of `token_x` to provide in ether -x_liquidity.fixed = 0.01 # SINCE WE ARE SETTINGS THE WEIGHT TO 0.01 AT THE START THIS WILL BE 1 ETH TOTAL LIQUIDITY -# The initial price of the pair -initial_price.fixed = 1.0 - -# Swapper settings -[agent.swapper.Swapper] -num_swaps.fixed = 12 -start_timestamp = 15 -end_timestamp = 15000 -initial_balance = 1.0 -swap_direction = false \ No newline at end of file diff --git a/configs/dca/vol_sweep.toml b/configs/dca/vol_sweep.toml deleted file mode 100644 index f20ad96a2..000000000 --- a/configs/dca/vol_sweep.toml +++ /dev/null @@ -1,65 +0,0 @@ -simulation = "DynamicWeights" -output_directory = "analysis/dca/sweep" - -[agent.block_admin.BlockAdmin] -timestep_size = 15 - -[agent.token_admin.TokenAdmin.arbx] -name = "Arbiter Token X" -symbol = "ARBX" -decimals = 18 - -[agent.token_admin.TokenAdmin.arby] -name = "Arbiter Token Y" -symbol = "ARBY" -decimals = 18 - -# Price process parameters -[agent.price_changer.PriceChanger] -# The seed to use (optional) -seed = 1 -# The number of steps in the process -num_steps = 1000 -# The number of distinct paths to use -num_paths = 10 -# The initial price of the asset -initial_price.fixed = 1.0 -# The start time of the process -t_0.fixed = 0.0 -# The end time of the process -t_n.fixed = 0.1 -## Parameters for the type of process to use. -# The drift for GBM -process.GBM.drift.fixed = 0.0 -# The volatility for GBM -process.GBM.volatility.start = 0.1 -process.GBM.volatility.end = 1.0 -process.GBM.volatility.steps = 10 - -# Portfolio manager settings -[agent.portfolio_manager.G3mPortfolioManager] -# The weight for the `token_x` in the pool -# `weight_y = 1 - weight_x` -initial_weight_x.fixed = 0.01 -# The swap fee in BPs -fee.fixed = 30 -## Dollar cost averaging specialty settings -# The final weight to reach -specialty.DollarCostAveraging.end_weight = 0.99 -# The amount of time to reach the final weight (in seconds) -specialty.DollarCostAveraging.end_timestamp = 14985 # One before very end - -# Liquidity provider settings -[agent.lp.LiquidityProvider] -# The amount of `token_x` to provide in ether -x_liquidity.fixed = 0.01 # SINCE WE ARE SETTINGS THE WEIGHT TO 0.01 AT THE START THIS WILL BE 1 ETH TOTAL LIQUIDITY -# The initial price of the pair -initial_price.fixed = 1.0 - -# Swapper settings -[agent.swapper.Swapper] -num_swaps.fixed = 12 -start_timestamp = 15 -end_timestamp = 15000 -initial_balance = 1.0 -swap_direction = false \ No newline at end of file diff --git a/configs/momentum/static.toml b/configs/momentum/static.toml deleted file mode 100644 index df51ab970..000000000 --- a/configs/momentum/static.toml +++ /dev/null @@ -1,54 +0,0 @@ -simulation = "DynamicWeights" -output_directory = "analysis/momentum/static" - - -[agent.block_admin.BlockAdmin] -timestep_size = 15 - -[agent.token_admin.TokenAdmin.arbx] -name = "Arbiter Token X" -symbol = "ARBX" -decimals = 18 - -[agent.token_admin.TokenAdmin.arby] -name = "Arbiter Token Y" -symbol = "ARBY" -decimals = 18 - -# Price process parameters -[agent.price_changer.PriceChanger] -# The seed to use (optional) -seed = 2 -# The number of steps in the process -num_steps = 1000 -# The number of distinct paths to use -num_paths = 1 -# The initial price of the asset -initial_price.fixed = 1.0 -# The start time of the process -t_0.fixed = 0.0 -# The end time of the process -t_n.fixed = 1.0 -## Parameters for the type of process to use. -# The drift for GBM -process.GBM.drift.fixed = 0.1 -# The volatility for GBM -process.GBM.volatility.fixed = 0.35 - -# Portfolio manager settings -[agent.portfolio_manager.G3mPortfolioManager] -# The weight for the `token_x` in the pool -# `weight_y = 1 - weight_x` -initial_weight_x.fixed = 0.5 -# The swap fee in BPs -fee.fixed = 30 -## Momentum specialty settings -# The frequency which weights are updated -specialty.Momentum.update_frequency.fixed = 150 - -# Liquidity provider settings -[agent.lp.LiquidityProvider] -# The amount of `token_x` to provide in ether -x_liquidity.fixed = 1 -# The initial price of the pair -initial_price.fixed = 1.0 \ No newline at end of file diff --git a/configs/rmm_vol_targeting/static.toml b/configs/rmm_vol_targeting/static.toml deleted file mode 100644 index fdfa88d30..000000000 --- a/configs/rmm_vol_targeting/static.toml +++ /dev/null @@ -1,61 +0,0 @@ -simulation = "RmmVolatilityTargeting" -output_directory = "analysis/rmm/vol_targeting/static" -# max_parallel = 5 - - -[agent.block_admin.BlockAdmin] -timestep_size = 15 - -[agent.token_admin.TokenAdmin.arbx] -name = "Arbiter Token X" -symbol = "ARBX" -decimals = 18 - -[agent.token_admin.TokenAdmin.arby] -name = "Arbiter Token Y" -symbol = "ARBY" -decimals = 18 - -# Price process parameters -[agent.price_changer.PriceChanger] -# The seed to use (optional) -seed = 1 -# The number of steps in the process -num_steps = 36500# 1825 (10 steps per month) -# The number of distinct paths to use -num_paths = 5 -# The initial price of the asset -initial_price.fixed = 1.0 -# The start time of the process -t_0.fixed = 0.0 -# The end time of the process -t_n.fixed = 24.0 #1.0 (24 months) -## Parameters for the type of process to use. -# The drift for GBM -process.OU.mean.fixed = 0 -# The volatility for GBM -process.OU.volatility.fixed = 0.01 # 0.01 per month -# The mean reversion rate for OU -process.OU.mean_reversion_rate.fixed = 0.1 - -# Rmm portfolio manager params -[agent.portfolio_manager.RmmPortfolioManager] -sigma.fixed = 1.0 -tau.fixed = 100000.0 -strike_price.fixed = 1.0 -fee.fixed = 30 -## Volatility targeting specialty settings -# The frequency which weights are updated -# update_frequency = 450 # 1 update per 30 timestep day -# update_frequency = 300 # 1 update per 20 timestep day -# update_frequency = 150 # 1 update per 10 timestep day -specialty.VolatilityTargeting.update_frequency.fixed = 75 # 1 update per 5 timestep day -# The target volatility -specialty.VolatilityTargeting.target_volatility.fixed = 0.15 - -# Liquidity provider settings -[agent.lp.RmmLiquidityProvider] -# The amount of `token_x` to provide in ether -x_liquidity.fixed = 1 -# The initial price of the pair -initial_price.fixed = 1.0 diff --git a/configs/v3/static.toml b/configs/v3/static.toml deleted file mode 100644 index b4c0cb558..000000000 --- a/configs/v3/static.toml +++ /dev/null @@ -1,95 +0,0 @@ -scenario = "VolatilityTargeting" -output_directory = "analysis/rmm/vol_targeting/static" - -[agent.block_admin.BlockAdmin] -timestep_size = 15 - -[agent.token_admin.TokenAdmin.arbx] -name = "Arbiter Token X" -symbol = "ARBX" -decimals = 18 - -[agent.token_admin.TokenAdmin.arby] -name = "Arbiter Token Y" -symbol = "ARBY" -decimals = 18 - -# Price process parameters -[agent.price_changer.PriceChanger] -# True is we want to use historical daily average price data -backtest = false -# The seed to use (optional) -seed = 2 -# The number of steps in the process -# num_steps = 1000 -num_steps = 1825 -# The number of distinct paths to use -num_paths = 1 -# The initial price of the asset -initial_price.fixed = 1.0 -# The start time of the process -t_0.fixed = 0.0 -# The end time of the process -t_n.fixed = 1.0 -## Parameters for the type of process to use. -# # The drift for GBM -process.GBM.drift.fixed = 0.1 -# # The volatility for GBM -process.GBM.volatility.fixed = 0.35 -# process.OU.mean.fixed = 1.0 -# The volatility for GBM -#process.OU.volatility.fixed = 0.1 -# The mean reversion rate for OU -#process.OU.theta.fixed = 10 - -# Rmm portfolio manager params -[agent.g3m_manager.ParameterManager] -## Volatility targeting specialty settings -# The frequency which weights are updated -# update_frequency = 450 # 1 update per 30 timestep day -# update_frequency = 300 # 1 update per 20 timestep day -# update_frequency = 150 # 1 update per 10 timestep day -specialty.VolatilityTargeting.update_frequency.fixed = 75 # 1 update per 5 timestep day -# The target volatility -specialty.VolatilityTargeting.target_volatility.fixed = 0.15 -# The sensitivity factor of the vol differential -specialty.VolatilityTargeting.sensitivity.fixed = 0.0115 -# Max strike update -specialty.VolatilityTargeting.max_change.fixed = 0.06 - -[agent.ln_manager.ParameterManager] -## Volatility targeting specialty settings -# The frequency which weights are updated -# update_frequency = 450 # 1 update per 30 timestep day -# update_frequency = 300 # 1 update per 20 timestep day -# update_frequency = 150 # 1 update per 10 timestep day -specialty.VolatilityTargeting.update_frequency.fixed = 75 # 1 update per 5 timestep day -# The target volatility -specialty.VolatilityTargeting.target_volatility.fixed = 0.15 -# The sensitivity factor of the vol differential -specialty.VolatilityTargeting.sensitivity.fixed = 0.0115 -# Max strike update -specialty.VolatilityTargeting.max_change.fixed = 0.06 - - -# Liquidity provider settings -[agent.g3m_lp.G3mLiquidityProvider] -# The amount of `token_x` to provide in ether -initial_x_amount.fixed = 100 -# The initial price of the pair -initial_price.fixed = 1.0 -# inital parameters -sigma.fixed = 1.0 -tau.fixed = 1.0 -strike_price.fixed = 1.0 -wx.fixed = 0.5 - -[agent.ln_lp.LogNormalLiquidityProvider] -# The amount of `token_x` to provide in ether -initial_x_amount.fixed = 100 -# The initial price of the pair -initial_price.fixed = 1.0 -# inital parameters -sigma.fixed = 1.0 -tau.fixed = 1.0 -strike_price.fixed = 1.0 diff --git a/configs/v3/sweep.toml b/configs/v3/sweep.toml deleted file mode 100644 index db955b33e..000000000 --- a/configs/v3/sweep.toml +++ /dev/null @@ -1,69 +0,0 @@ -scenario = "VolatilityTargeting" -output_directory = "analysis/rmm/vol_targeting/static" -max_parallel = 5 - - -[agent.block_admin.BlockAdmin] -timestep_size = 15 - -[agent.token_admin.TokenAdmin.arbx] -name = "Arbiter Token X" -symbol = "ARBX" -decimals = 18 - -[agent.token_admin.TokenAdmin.arby] -name = "Arbiter Token Y" -symbol = "ARBY" -decimals = 18 - -# Price process parameters -[agent.price_changer.PriceChanger] -# The seed to use (optional) -seed = 5 -# The number of steps in the process -num_steps = 1825 -# The number of distinct paths to use -num_paths = 1 -# The initial price of the asset -initial_price.fixed = 1.0 -# The start time of the process -t_0.fixed = 0.0 -# The end time of the process -t_n.fixed = 1.0 -## Parameters for the type of process to use. -# The drift for GBM -process.GBM.drift.fixed = 0.1 -# The volatility for GBM -process.GBM.volatility.fixed = 0.35 - -# Rmm portfolio manager params -[agent.portfolio_manager.VolatilityTargetingSubmitter] -sigma.fixed = 1.0 -tau.fixed = 1.0 -strike_price.fixed = 1.0 -fee.fixed = 30 -## Volatility targeting specialty settings -# The frequency which weights are updated -# update_frequency = 450 # 1 update per 30 timestep day -# update_frequency = 300 # 1 update per 20 timestep day -# update_frequency = 150 # 1 update per 10 timestep day -specialty.VolatilityTargeting.update_frequency.fixed = 75 # 1 update per 5 timestep day -# The target volatility -specialty.VolatilityTargeting.target_volatility.fixed = 0.15 -# The sensitivity factor of the vol differential -specialty.VolatilityTargeting.sensitivity.start = 0.005 -specialty.VolatilityTargeting.sensitivity.steps = 20 -specialty.VolatilityTargeting.sensitivity.end = 0.03 -# Max strike update -specialty.VolatilityTargeting.max_strike_change.fixed = 0.1 - -# Liquidity provider settings -[agent.lp.LiquidityProvider] -# The amount of `token_x` to provide in ether -x_liquidity.fixed = 1 -# The initial price of the pair -initial_price.fixed = 1.0 -# inital parameters -sigma.fixed = 1.0 -tau.fixed = 1.0 -strike_price.fixed = 1.0 diff --git a/configs/volatility_targeting/static.toml b/configs/volatility_targeting/static.toml deleted file mode 100644 index d7f4ca233..000000000 --- a/configs/volatility_targeting/static.toml +++ /dev/null @@ -1,64 +0,0 @@ -simulation = "DynamicWeights" -output_directory = "analysis/volatility_targeting/static" - - -[agent.block_admin.BlockAdmin] -timestep_size = 15 - -[agent.token_admin.TokenAdmin.arbx] -name = "Arbiter Token X" -symbol = "ARBX" -decimals = 18 - -[agent.token_admin.TokenAdmin.arby] -name = "Arbiter Token Y" -symbol = "ARBY" -decimals = 18 - -# Price process parameters -[agent.price_changer.PriceChanger] -# The seed to use (optional) -seed = 2 -# The number of steps in the process -num_steps = 1000 -# The number of distinct paths to use -num_paths = 1 -# The initial price of the asset -initial_price.fixed = 1.0 -# The start time of the process -t_0.fixed = 0.0 -# The end time of the process -t_n.fixed = 1.0 -## Parameters for the type of process to use. -# The drift for GBM -process.GBM.drift.fixed = 0.1 -# The volatility for GBM -process.GBM.volatility.fixed = 0.35 - -# Portfolio manager settings -[agent.portfolio_manager.G3mPortfolioManager] -# The weight for the `token_x` in the pool -# `weight_y = 1 - weight_x` -initial_weight_x.fixed = 0.5 -# The swap fee in BPs -fee.fixed = 30 -## Volatility targeting specialty settings -# The frequency which weights are updated -# update_frequency = 450 # 1 update per 30 timestep day -# update_frequency = 300 # 1 update per 20 timestep day -# update_frequency = 150 # 1 update per 10 timestep day -# update_frequency = 75 # 1 update per 5 timestep day -specialty.VolatilityTargeting.update_frequency.fixed = 150 -# The target volatility -specialty.VolatilityTargeting.target_volatility.fixed = 0.15 -# The maximum weight change -specialty.VolatilityTargeting.max_weight_change.fixed = 0.05 -# The sensitivity to volatility -specialty.VolatilityTargeting.sensitivity.fixed = 0.05 - -# Liquidity provider settings -[agent.lp.LiquidityProvider] -# The amount of `token_x` to provide in ether -x_liquidity.fixed = 1 -# The initial price of the pair -initial_price.fixed = 1.0 \ No newline at end of file diff --git a/configs/volatility_targeting/vol_sweep.toml b/configs/volatility_targeting/vol_sweep.toml deleted file mode 100644 index 18d43d56c..000000000 --- a/configs/volatility_targeting/vol_sweep.toml +++ /dev/null @@ -1,65 +0,0 @@ -simulation = "DynamicWeights" -output_directory = "analysis/volatility_targeting/vol_sweep" - -[agent.block_admin.BlockAdmin] -timestep_size = 15 - -[agent.token_admin.TokenAdmin.arbx] -name = "Arbiter Token X" -symbol = "ARBX" -decimals = 18 - -[agent.token_admin.TokenAdmin.arby] -name = "Arbiter Token Y" -symbol = "ARBY" -decimals = 18 - -# Price process parameters -[agent.price_changer.PriceChanger] -# The seed to use (optional) -seed = 2 -# The number of steps in the process -num_steps = 1000 -# The number of distinct paths to use -num_paths = 1 -# The initial price of the asset -initial_price.fixed = 1.0 -# The start time of the process -t_0.fixed = 0.0 -# The end time of the process -t_n.fixed = 1.0 -## Parameters for the type of process to use. -# The drift for GBM -process.GBM.drift.fixed = 0.1 -# The volatility for GBM -process.GBM.volatility.start = 0.1 -process.GBM.volatility.end = 1.0 -process.GBM.volatility.steps = 10 - -# Portfolio manager settings -[agent.portfolio_manager.G3mPortfolioManager] -# The weight for the `token_x` in the pool -# `weight_y = 1 - weight_x` -initial_weight_x.fixed = 0.5 -# The swap fee in BPs -fee.fixed = 30 -## Volatility targeting specialty settings -# The frequency which weights are updated -# update_frequency = 450 # 1 update per 30 timestep day -# update_frequency = 300 # 1 update per 20 timestep day -# update_frequency = 150 # 1 update per 10 timestep day -# update_frequency = 75 # 1 update per 5 timestep day -specialty.VolatilityTargeting.update_frequency.fixed = 150 -# The target volatility -specialty.VolatilityTargeting.target_volatility.fixed = 0.15 -# The maximum weight change -specialty.VolatilityTargeting.max_weight_change.fixed = 0.05 -# The sensitivity to volatility -specialty.VolatilityTargeting.sensitivity.fixed = 0.05 - -# Liquidity provider settings -[agent.lp.LiquidityProvider] -# The amount of `token_x` to provide in ether -x_liquidity.fixed = 1 -# The initial price of the pair -initial_price.fixed = 1.0 \ No newline at end of file diff --git a/crates/analysis/Cargo.toml b/crates/analysis/Cargo.toml deleted file mode 100644 index 0523cbda1..000000000 --- a/crates/analysis/Cargo.toml +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "analysis" -version = "0.1.0" -edition = "2021" - -[dependencies] -arbiter-bindings.workspace = true -arbiter-core.workspace = true - -bindings.workspace = true -dfmm.workspace = true - -anyhow.workspace = true -tracing.workspace = true -tracing-subscriber.workspace = true -thiserror.workspace = true -ethers.workspace = true -serde.workspace = true -serde_json.workspace = true -plotters.workspace = true - -linked-hash-map.workspace = true -tokio.workspace = true - -[dev-dependencies] -rayon = "=1.8.1" -tracing-test = "=0.2.4" diff --git a/crates/analysis/backtest_1000_days.png b/crates/analysis/backtest_1000_days.png deleted file mode 100644 index 92795ce670d7b1f66988bf54a49e56804404022e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 897600 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

CVESAVv~vj8!zVO>*s875Eoa4LjLc*Z{SfII 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%0DgY6P^vZ-I+a7@`)mP+}?-;!z*W?kZ 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≫_X9 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 z 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 Kw*LJ2<^LbZ9u7VL diff --git a/crates/analysis/plot_figs.png b/crates/analysis/plot_figs.png deleted file mode 100644 index 97cf94a0416e55ad91a019a66b0642778bd42d77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658217 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

ekFH-AZSJT^ro`S)P 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%0DBqN8*Mqz-Mi zS}SZdNw7D+z90$`2!R1ZPi`-(R;?Bc()rf64MI>lH~u6Lc`1^42ad!c8pQ~#)naZo z6fpS>sVIq!f!K^tORHtyVasK=ZOn6sPBr#|qYd`_a(Y63R?7G>9yl;k{1;tGnTG!( z`)SeGS^o4w_IP>JezF=;+94yMmC|lmAc%|B23g0P6macz8v8+!TQzEu*aLn3Fl7E!S~ zj$Od$iSxB0g?p_D=AurReCGXNPPO^^YkIWlPa)?MeaxQ3pQ=

dD?{+tl)my9~m1 zCo@c@{AdN3{C6j1^R0sg0p|X5E@@2_W_k%Rcg$Ve=3~F~?1Rdn5=?KJi+cSJQ&pie zr(AZF@~yNYE2r)Ws?@Y?DXy72E1cnuMX$cOEdhQB-eGm9W65bF2S%^DS2ped8%yJ4}DhF5Z2LfATFup@NXO<_OKGUN?rO$V|#DjJM}oh37AvFoXst?su7cN z@`!!Xv!#0@lF*HKx<#C3F19`;A0*X}lr;!J8q>NP{WY;!$0kS_Jpx*pe06DnT3D+R z_TGg2t7&v(1fF~j_=)z;&d%Q6;q-FQH}iE5^O`aSK5*&1fyf&TD4{XiRx1~I`+*1| z_cs8koZv9_QuLkpZ*WPcUV_yIdVh;_i)80kNUxkpzv#8wHY^{19`~V;{&I#s3R#&r zIc3tKBSJXo5hzZ1^TvmCXl>s6M4&kJq}SfZ1pDm&*6kxUzaN;Jd7Bgf_iJQDhym5K9<_vNFDzn}q+C#O&^^Bf@lmC6 zv6tjBJdJS+n^Wr(iuG$Hz3SNdsVNuf%o$~=OoSjn$7me+L3hya*NU{R2=lq1$W*Nt zXq|CRUfp<%iI>b9aQ9+lFPSS~WKiIL^iAAM?}yHpLoE-OOirScUITYMIrJ7)< z&OT0x)Z8Sye8RIkW}*E$>now@fZ_#cwQpqYJ$X3bv-N&=^da>I46L7i$nlej56C|( z8-ze;q5zugHSkXQ^kJxt@4e(Ay^m)bkB%R{7fOBRq0sSho{hP^h>?K7hZ{xeil}sa zKJ_C?wFRyef5yqJtO(OT;XKxBQJ1#143TR@JpcFQ`?WV zgkf@=smdQjs!k7R|KWxHqdQ-A!iC1IR&}kVOJDp$mGLE*m9Kozfn=|(^jzIqF_s2i zUddnKh*3Wd;0@pv%$V?7{BbFoJ*`eCYaAY?hl{NTvl$~~?#Pdoc@1>fCoLTG*>sBn zqCU)b*Xd~7!du3E;598wGgat4wBuvU)7!6!*p-IK&AK1LdRKwns8eF`y}>-()eR7+ zWA4mH|Fm+?FkH8s4oZ+SD3!+b>Ep3YF{rR1yD{}Jt zsT|0%eh9B1nwaS%T;vYd7Cme~nSF{wgZoYEBCHc}t)VwNjaf;mq~uWr774c9-&!vK zWlFc`fH-dbdaqjAHnNEg0NL`U-sII|@3e3`OLl`h7qElxI?|^QS(xqkwS9ygt1-3! z&LbLT{^7F4ESKHNPOY1Ywyt!VP|E=Lrm^|3$^H%J^UP8cEAWkL4W0FK?vfe|eX=*H)h|y13rb)pk8WzJ zU3qS!_@|}$)64`n?YTHS%&gD9a&y_UkP3u&QA%!|*)t615(|BBU%tr)6Xc3jctO?% z^Z=OHw7_)c?`1bKqEhk{{gZ+$=j&M1N296^0V|+V1F{Xi%V8Nl_2}&A=iw{|?vnnx z;BS&Cpk=V^o`-P~^unW4^AxnW9Z=4ASYC4Jfp>^; zioUQAZ?oCWzn-1^?VkeSqWsu#Z)fYruJj>B+=}_Qey=fGbkZ{%2`wh*JPkETMxCom znLVozebEXM<=W3;0%#9r7i zj`qm~kkEece?E6XtCn9{TKA&c4DD^npIR>vj^RSo>n0=HX4n?9|{X z=8YN-SB6g@UC`FnjME>QUXrZ<1IwDXGm@F7^Jh*o%3hCv94=ytpV8^c?IX8^wr@b>OhhT>21L8kq;C=tleEf%Y` z7%rQ4bs0Z#dl;v|Vg5|bq;r~ax>ws^2^3Vv$0U2BALnozP*NFQUQrR7Txq!AF7EE| zLHAU`@Kr~RR_l8r{@;Dp`i)FYRrmC4Xc|Im6W#{bdwZ#yxX#lw3EL07sd(~T>hisg zVoe2KwMc9E*r}v>(I(2L^L!Ycpv$?aFI~YMy`K;C>xM$M1F<_w49`@}U0oR%4uBjw z0CRM`0VAKmCYcV1HO3!&{&gTKf?A`V*k3_s$7c@sJADKwk`9NVpR20M*k#U1%QQ-qnVIb;mad&T_w=3yAx& z573R_;K{xrUcHGq$D5vG%w=U4PkV-YSVonBYviZFO+4~u3){$3<>je2oe`2~Y?{@q zd4@2{`qHp0L${}ORO!koqWKN<^O>Q3@9p&GAMX@`Q z7=XYtc;@GWQWSpu1I0*3Z%9!{O_$wz(EaDS-|No) z+%1W}`3$j`CBF;A#M}f{^an<9J84gn;mRH#0()Lwla&ceL^4PknCjw5JI^eqKSLo4 z%vN*6%78xq0-p6#3(s=@R|uY$b0d#gdYL187p%tu*|NsKws zsYWl2Wh&ZKCdg>oftGATOAFI3ZA61}mLqG`KV4nalcKT`VYQInA)28j1bcXGR#)rp zHCl=1qd*uy)=B)WpD@t^KVm4ZF+yLqPr2Qiw_C8U!{4yGotlfzx0nsPkaonFK_t?% z`fM4R?V;tlvqDgn^91HRSem!??3}F-WVw;`Xc%j14=QJ%(>F_J4m+bwY4D^wRlPB{ z2aTH<+_~Ow$C+yl^%>}W_{&QAu~Qhe?=bWfQv$0Y2a=jjqFe{^xD89jx5iHG<};8HyhZ`sv6~;G_Nf~ig9azF z;^!?z^LqP0EL^$7sYWWroz53B%;I+A_esh;yiu5=gI!6is1xYGvrF8RXYAp78x|}3 zsL`x{a~M5$9E|hD)owHJp2cAMmYx7~xV)TX=y=a#oup}&g}3B_E`V3b{HMsiDwT#E zK1|!i@dhXq6-XB`i~4U^9lZm2x2iW(^sFI`6?S;;@lF_ibwnE~iQh@X$ckcFSC=E- z)@P^R9D@yJ%56$&NJyz)KdYJr8+omCuuMT9Xy;wJFN-@YKWB|dN1DdJ@j(y0#yyDC z0kcE8aC#)>c&(XMcpKeCC8nGCVk|D%b!OR$4s1LXjB57H3rE!Qe3`HeE^qU>#Cmh? zQ`@~og2GW{oRfTzQpAq$B)_Xgq4449J}2weuhiA~rmB2lQ$=diwm`TL2`xW&{Hvg1~}o1WHGQ>XMUmvp1o8br9pX?0t8 zRIXHBgA^k86Q3IDgStB0M%dHF&#VgZBC#Tpq)l1C{A2Fgbx-b&oGb{uY`C}X1VctF z*mS&!`Ss?B^KP58H95_%i6Q0cbgKKTARm1e!G~zmKwO1d66PqcL&?*DW=3^fJfmpD~x6P9n;DY4?PjOCw*!qVYTCb1jCs+Vh8QY zLRGmw$Al)jwEPEw9M?lvj=d1s{LWL_X)tbyI#IldX?xvYtWfZ$&%ca*sqPW~GFo*HE`m8bQUq(HU1`QI8}|`aPl$x^ywZcCM$UK0afobJgcp=e7RY; zn)5?)hUVF`_clhe;zZxrrP|{7uUMYRP5Jd8jd9&_eqaQC$jJdr=@DcP?PxmXvkXny zFO8zqmfh6np6C(KZZ0igCk(!53(D_ zx3v6=^s*NHP<62dDcr1<^Zux+Q!;G;H!h(=?zQ1*!wnrKi7zTG3^IWl|19O&ER zFxDlLqEqOXjgB5UIjL;;_O(r}VS%3RDyQb7fc2&1U28}jAa=j_UCIvX= z-QtSqS|h=(>r>Nvjx0q1DSX!VD-GV#{PbKASbqd*W2Hp^By|n0UWN3; zo+zzhWlzmSd%A;On9UJIKG6t`Cmn0gh?>28&~&?V-$s)ud&!b-2`6_OO3ZZ0Bcu}~ zWN5#auUUf^ED&83GYV@dhkE(RCX2<|x3# z#zev|QJ{Wnvuq6T-c(Os`+zP>i{ljOk6_iD^vzV~B4^E(Vq88raaVwBVxmAP94#vk zvgq7G_jXm}QGf>;i6zXN9{8JgR%Z9W5{aHY zSeTrw?RBkVv%wVC$rqf~PAyi(OuzuSF-uF4_I*rz)Eyl=TGoSZ3cj|m07ZdM{plZP z`L=#VrzbT9{5)fBQ(zunwDTbhThW{pQrdhOnTX&=8uQ{*$Z))P-K#=ehENacKlC5= z(|7Y8gj+2FGsZzjK6U&;NK#6GVs9E?ra*Tu;|By-bxo)Nh&LuRF84i!u!`Y%O(ooy zq>Obu6Z;1;Qauq2{ESQVKUITwQw+!ug%UzxN(OjLL*9e&^m3$@t#h zsaK9=Mn;nemUVTY!BQXYck!54=2r6P=l*Y*z zmF8!&0toV(#jG~ofevq1-?i1OGTOScbK+2JinIfospnsy_TOb_hJ{5(BSl)UHBk`~ z?zIMkKg`EHA&(KA8Z`)&<^w!$^H)yqLS!F0l!P&k`_hdcU>oFvLun_W=K>y-36KMr zo6RDzx>&wG;0pREO-Vwpt?JW3+rtLIfi%ilOH__PXiJr@LPCJ-B*zqD!#m0Fm>W@U zzd7yb*f?b%8MCt}?zFbGLA*-ukTdw*hU`vAKw+06SMI!B^lHJdp~ovalG2c`nN|`&hHrCr z=TmEOcjUDiO{aGf1JNu1xOFqp%SEROCp(=zNIP3DKLPiycW5h19Og-}OyE5t_jgLqSk(hl%lTrFZQcYX7cz3S^%DVJ}n z4;gQ6=#UI%W?*G(&p@_;M3tnpQ}*q0Ln$1nZE3Q35I#KQr^C6Y{g#>PQs$wl3ZHzA z7e`r_!(?CIh2Gv7RyB?D)3uXQU+L)auL>5^%G|1Vv%Y|=gbvv+*?rM|@y#XB5!)RV1T3jQ>y(x@w77BJ!{&2Y(cCF}ylGDSDs&G# zO+75ECo~EZ&?qpr0lE&f?A5)RsjfKb@VYkJdAHrt>lutQ9A`1SH21S5n(8y>FG7j{ z)6Eu`xF=Gn{(aR$a0&N4=bdBi$#mnlWWc8aNdye%?bV!T~=L5v9;|e&$x2m&b4v+X1tUgSd#?K@KSkmVrO-f>v_}_=}pfX z?FQz*^j>&)BC?>yT?wP`v^=uZf%TcReS>=A!LDfKj85BsS4vaGzqF=Wia-9k%r3ve z`-TZhC~U3IQ25VW_Jc1@_>R&<7B7c_dpOF~DYfY%!jCh7iqRif<~lxhI2x!|+x-k) za&xZVD}}owpGFelj3(OEYJj#Re}axVA9OKR6Db8@D@w_hF3Dmi(KO-}z1s^6|Ed(o z;js)^CE>h;!f?(LXI3mp;GP*OdpicH9}wZgP__X^*18vkW(E*E9Ni*8=b`w2;kv0A z8>1mVl-05SDa`f)qdJh2XiLnIZy$ihUss-Xvu zH)%MPsy||)&={eRuhiUGti#SDKpg84Bl#c1y|J7$7w;nwk?ZPcW-X6{Gu(+L=2G`* zr=;=6vpw*r{tn-_gyzadn)b}BvKiSFD{E|z6;?nB-rFqIL~QV>u6 z7I+k=XI|@0)g#$Z?GMZ!*3>XREt>+P3>{eOx>@BhXG}?0Bh+>6RyF%wr=9_=4*h4M zL0ZeOF2*8l)9sr@>W1vp2hVx8L{|}^mJ4=Wd4@eeDAC}>%_{ZEEnKXt=X7uMd#CG+ zr}LS-1%e!`PR(3;Q+omsg#HI;2^KxH9w;qZZXP&FSY=w?g*w-U%a?DlHxG#4m*}8x zTG2o{U$FJGtMW$VdGG%bQ|A{7Wm?0H^=JXl;^xKqenQQc;1q(0%9*4jAtPWf0Ts9C z+7lEWKCQ3r80n<6sT~&BOv>_`yyoSPxTQJ+(ibsPMF)=AonLRlnHUGptW1<&F~$k4 zEp>4yTy_7CoF*&vaT8N**zBi?MR%UWo19iDQx7@}*Ciw1M z9X;EnMXWlK9m;9f9QwyHPQI-=W`DM@Y7`$|$7cA4ywg+RAZD4ow{8+!`T-Olpza7k zS{ye&v&;7kPSNpRl~$SplLI4YBErfSv7|q-6C`sCLpR_r|j2 zB(oTV%y#q22NkY-q|*9tfK-GxG|jg?*Yq42xwOXXG-TrGueZ6G$rUY2?nAW~Flls$ z%$uw5dP}))B`X@E8H>?gIR(l26j!EXDEJUOb=zSP-g;D6wcH3=o<2k>{>=}#O)hXL zp8PgERQuMqXjgh3KI}X-)rl~jNlNTukJhxAo}R*!Cx;3v5?SeuJD4|oxKOyIX}ha$ zdABm(ZP}$IOSC;*VP$s|^}r`$XORBA^NSM9kxC;Vl_^YjWnzGr4jT@{Xka3C%@ZE_ z=AGS)qJs%?JgeOUyAfx1YyYNLj^38EF)JIruP}fKnAX5n-S*J7-hSx^#g_NP`FYR} zLtz<|OS`UR_R~`a=ces0jT`WM89V0uAS24E6T=3Hv&O#T<#J+~PKArgp>-vo3vk&A z5ARl^Qx+cq+_}|;Jb&NUV0LLeNB|tV@swQHU`&5juqvmis47|4z3X#uxpMcO&R%P7 zi0)3s{~``IugDAW2ny+zQlRs7JT%&CWfXE{(+5AoJjBFbrSuC>GDC;p{V79l*W;{B zitR7p+u4;b0^wm9`F8|!3>7RbQmHijEBtl!YF}R_Cp-sA*?fHtecWh6gEUCAR_|k| zfwYjubv?%-YhHNCU{E*rvJ~v9pIOde`POQ^}e0L(Qe?JJ5g? zsTmb-)6m$PIR8w$B^FYM@;WsJpyQK=07<~6xP~+9*SkA88NAjUr=cIdI$t%Z+%}!1 zM}kNUHMU9O`~p-p3Kc2^qjF_myQsM{-Yv@2j)x7J(UNy{Zjpn1UqO8XcXw`Y+RTj` zn%L`*c2VunrMN$Hx4%wbwULd0O>H7Z>+@^HpNOv6@2rJ@NSkSlRmg zn;4iJQAc)JQgU&Bglu{`vZBz{)P9Zrjctb7!%yQkWydJhL?nN9GLGNaB<((rPd&Oq zD8z%3a8C^EA~N6If=tEfY>7az$hp$c3-a4IMcVLYDJi*(zMO^v%X9c-b=wrhxLgAV z{CY3oyJF%PEnb(@tB$)RZ8_pJI1oW0FEFGsW+&s2$~w=Qg%g%Z=-W{$lA8$unFrP0dFO}=t$2}l8?MYE1g#_sa(!s=p_^%)PJ=PW*DS6Ws`M$YrhKaEevGEnX3?CYMqxoKm(7guUx zMbk`{jOe^9eMl~bk(ZJB8 ze=|`&+dezJ&^KlrRVG>gO{9Mwb5Kp88W6-W?JMy2?@^hEL}e zG_vP(5P08k+8!PMI_6ICqIhWHW{P4ljAe&WBLp^_Y3E!YYrm5nN{tm{r{&1y{Hf2IdWX6sM{j{u1AEWm^o-7X-B?EXr|-LLb)O_Eck*{J}-& zqdgC*85Nj05|Rgj6@PVt#_$)EG>Dcl>7C8BF-vtQgO<&?dGah=Zu0QmZR)|SluOiU zSvN5!OS1yK(%#`nkS)ckKQj%Qb+Iw$R^_pRNrFGlJ)!0OGp{N5H(oG@gAV1Zr8s^c z1jfdyBPh1wges=Jrmtp&ruA>WR3YSUFAhzI@?e3;>f(*VW3Q>;2Wl!>mhuXWCq*gFH*PN%U ze8sVAyVPhBqB&O;nmIU06Yclwd*@-HfC=MWU`2m$&%$QDc_ETBy6*V}EKjp4j@9&) z%g$ds_G3AK}#8XQYqFA8XV>t+8WP%j*Abub})W>2^W0?IMR!*KjGRuB$NHM zhAOh;opv78=A+tGB*o?5UReZD7aD@&(0ghC`;R7r%RD{^YaDiQd6iUCF%_&MvE631 zHgoyljSr8xR}|M|iWYos16u$w&wC`gz=^I?O`l0lWg|CJ0hWkQ+rFdl8uoC1O5AG;W( zl?{+_D=93b`>`bc{b2-Xh~;{$Ql*Ps1aFh<)}n8dQe-EU)^+oR8|?j()adBAvPTY+ zhDFNdOG})*rlzQ@FAqXZ;B?0bA}LPuLlutFT{HsY&>Pk0C)j~y3j+PkUprg-oW?sN zg7W>KfR7R^_hLsE>OyMz^hAMEMfV*b!~fKyl0)SWRU0$<1?GKDOtk)Y3X@LcjS9sR zkLP=zU$iMoW_iCb9D%XuB0kGcMB~N^=@>5m&=l-ck96oRohUC$06@>2bG67fu`80& zE!8TtNPHmq!U#i{UM+Nvl7*~a-{`dlVKIW*_oNz+;2Tjjqi-^z0Q$HcYkXnT=5ufG zrhN1DL8v36C)LLwKNen^GI%Xn@8XYARBDL71%KGS+ao|LXNpzv~$G;7&Rv?>&2aL-ItbrfM+R?Qbr`C+5T z=;d5o^%r^^w*Rp152zddn5bm*O}JG$%Cu7ANI|-xfdVhlfm!dD=WUxst6{Q-j1W+2 zWMjMa(PIO=S`wGdNvKd$%OoW?{nut^v=s}$Q#WD!)5^<&#U_#+##r{zqdR}?yV zS8I(#`O^1^r)a`|(+;^myu7@{pSE99oRoZS)-aJ9dlxU0Q!cBFgCjxqg+{b6P6p#&c6oWBR326~f|; zFg9Vek+`~dfO~Xhe;?2K-VLE^AGu-FWVvBKRVl&HK`I$#5BgjmY4i-2!+!!DC(>j& z&5S`PrBUffA}TOBf7Px6?B<`j&MUsFTPk_ZYCdKv?+?D5XgK zGNIg&?Ln8FyciUaK5(H5&mS5cR<*LG#)LW1e}~;UJUmR$twU?AXAc*q+YFn*Y{d4S?e37)^7_yHFxI9DU+s_3}a#YK$|d3|A9*z%FT2>olVd^T1MRg+fJrqWS`qm zq-q*p|C~J8WZSa49omg^n_qN*tN;6*+bt3e_Vpngo-YYSI}yq`BYRHZZZmFoe>}H( znCWt+PN`+Jy5IB2OCrTpk?R+$1;ch=R{Ccvc5nVHTFtIT@?>lLjT^&9?%u3E)(*C$M#&b z=N50KTzD)oV91j>vTn|bm87H-0||Ggm^~X%{;+EV@ebtS3_q#0S%+$*F1Al$%bLFmXU&ixDpovDCHC>vI1RIRK^{iRVW z(`-StG{Gt5ccl;iw%0-O<7+YjsG>659Za3vJMQiq=%?dmv5oG$2BfZ=1V@i~MzoPno0@VoJOK|-~KKe@KNqPV9M z(O}g8^fW$zj)J||xiHV?#X>!K)e%HV^!dhu2h-#TJqQmIi7<){$aTSx(eUx}(?b{) z1R%HdT7}_v zJI0x*7w;K=oC&g>&IXGC-N9yXy#Z|nXm;TF-an`YMNLFYkqOg(PHj1|lyGgFrRM&} z+tl`Tvm<|8XDT)whk7)t4Z}*k=(H1d5q|Ly29gw3Fr*9Y*{Qvkag6RF_{AsvvP;9| ztQLZK1)K5;+yj5@JiR&jE=1hn*s`7P(p`S1^-0)8x$+N5y^;K#h1C9ltiJq*qO16(5;+5$j6C}XKOzKm^+ zp_S*@_|g6%*S3a8DofujgMGny!X+$VE@jbZTK4+C+KSkq`QX9l^7HW~bnw1r5TewX zeCv<$Aj6^1n?M)$6h4jcMRYL@Y_E%`(h*L@xo-xMN*9`kDW8PkHl4|3{XMFucSkRR zGzKCuLp734PGank=~H)0s{^UyPG&^L#To@~EkLIeo;l&jwHgl~F{5(m>3pskvY|}BGyHJVFx2x>g+g?MIBUXZYT|be z-uNFNZ18@hUnwqGhzcbSRp)jzxsasbk9PYnc+v7~AL_Y5@n++uv_Rm4ZtAk~u~9)q z(O{R)PQBl`Y|(_K(L_(bjv9(KV?L^-J=hyf1mSFE+TzDjIuT zd0(ov)oN<~q}L$W-4np428#RJ%a%<5<_CUFJ8(vomC_KJ8_vr*vUe&{X5Oha>H3cn=pfEj{_g2dib)tABnEl> zEP}&vd4ae!TXeNP%Rs*;YqW19?Py6wBWvGaO)JOQ3q@}{1biUCH$l|R7*-ICpSA?| zz~cOfKyjrZHmj+%VE$6S!rXyM)x_Ux7*shT8a4P5k>9=0+~vLdJ! z()MW|bgkH{_XYhwbBmSFo(WGO~MTS z6o!S8;T}+;?5IL2EBOZ-*w=)}WLVZojfkv^CQ;9au;4NGB=Oh<8oKt{|ex3hdkDF5DUtO(q#BZ5F|p z299?;b^$xlIP%)FMVC%-bH}kOIHUOkY6ZAv$h{b=bg!Nmf}nlEB&9Id_!gh?t+q_H zmXXbQx3-Bte5Enpze(1>%#}zw2#Fm>z9H@mv}TY7+D|-t3b2ql$S?@o6Ro4>MSo!82B(Q}o?LEOwg!wOoM$K$aTo+S-VOT^&O2eVgUUe}gRFS^_giyB{;ybW zwuV<{;^K#3ZB&l1iZBPv5V7O9UJ)DfdQE0)0V5Q)14g?F8-mUj?WKjyRCLAFnAmiU zmwaR-h6qZOM@aqz+3#JTiL?LFn3;#J0;2l&zJxO%;9zXU(3R|-4qe+d__dQiY2=;B zMKyLg#bhL#NX1cZn*3@9R_u$kzQ{z8(@A&%dY;2R8Rs#D-~()MxsQFM&p`lEW4!~~ z3u+Gl9TfAZ*hC;>ct!0U?ZfMmpryY73I^E;E-ne-m{CN3b*DE@SO^z4qPfLF?(Lm` zikXj!9m-Q`p&ANLh%ij9g~;Jj&wJUG!|I8xBe{RNMfqlBsg$xjyWLtV^DDA0=6~25G5bpA zXcSE$NxD6}3UrBF$vd4Eu3bAmv>+(7i^ScXkow!#shIWqQZXa5AHsEa(+935gs8N>ikz2ehZD{Qu0Jx$m&`!bDmF% z<@9V$@y)A0+atZeEw!!8(zR0!I8pgO;e&T0hA@}%`I8Suzo5|Jhttbznz%2q<`eem z=2YzNnr3GGYi8-$VK^I@pf&l8OFI<#SgW!15CQ|Lh}qC=?zRZ{_FTRUlvury{%m2F z?rLVmm|Y}RHHo-PBg=n>5h}oK;lSZ?sD(5s_ahbU|1)wAJRPsPA~{2C8|S5zdJP_` z)CNE_Yc|&I{4z2cN1o(EbiM?m*N}XQojEuba)rwV*5456{cWrtJ(!=*_@>Rk%~!|! zYCLp^VwrVuw=SJP$-=nEnQ#$YoE^tDk7eI{7AGrFvzBET=0D%qP#z0wDb6(Yqc#ong@P#)>{;#&(YL9hD!Pp5zZ z?oHgHAbIHKMZdbaM&US5CoZXvvZ# z&k>R!G;BpH%Bnz0pF1Md`d?axsFW>8+c67DReM|8%*CKKr8Uy$f~8-7tP11(x&8N1 zs5z_?XE+14(%;`=)T0=P7>A)`0C#OCgr}sJ^8}ZQd@<94+tr#)6J1?fkbKZor8i=; zZN`Ek%)y#}1q-M_5Xl4hw00(k4_n zDrpOT>0h1%QIo|h=SdI9NeYsJMaLVwkj}MhI{_T==e8lgg;^C`h%eX|wq=Xjou6_b zZ#{qJr>ZzVzHi1l5a*k@efK(>fpPshu5xW(1nk5L?o=f9q*e65g3Y6Ax<_fp?B;O!VQr$hJ;JyZd4l zObidF;e#2wb@NEd2PR>U*9Lr?p*JF@DX@LLp}UlV)l~)75&0B^QyVb*T&T`J-{!qX z6O8D1{aJj5ZD4VzFuAPO>F0t#4IZE&4 z+iD?7v`#+U8m(n%z+4%+a_ZfY(TxR_!;kF4qCkvPg=) zqsLZ>E@tNZz@ zFF?(W$ve(7O!qZjKIIHdKN#fLNvK>C-I*!D>t^}K`qXQ`obW_yV=n@8CLKR|K_H9aQM+{+{bg1-SSy^11v*Z(;XQQSlJzLg;D z?uh37l^7qvu_NteE-ovxCG8nhytmyQ-txK{!M9%W?JJNWN4RUwKmrG+>*JxCNb>bo9*pP{FJ^4fS?m`DtI)1vk3+lWAhaNIABKr5!^Y=l&Zp}NKF*2m{o*fBpcAN9)7}#o=R^;;_;Opz zZhUhOTfKdY4fX6(#B!}O-V2avF5H9O*GG6!jf7Pocy?xu!khh{DRZYB*HG?0`Nd?@+-LzATohsY6FRYO{bK+5*soPN7J*gD>^ZxcEz%~TL z0a7WpzNIBK?ijAV?wH7AC{Xq-z9F=arf2Tj`n}EP&zl+2^Md(BXur^cz-?~)xDOyf z0MlC8FDM)UN)6Up{ob@GvvK7iu8+>xN!mq&76i`Yl{z=ie{opTZXH_Gs8B;0Crw?3 zSB*1sqJ|)Z^vOJ|o;+J4++DSs3CJAUKWV7Zkh6o+A7Eah-yWKHQ)?UNOf_mv!wNwc z^hSwYDh~ra+|D$81cWRFUQNc2iYxK9*Lb-!9tAv2-%^Uvp)&HLNFc2xS<4|CmaUzN zIycAZ;uJ+Zaz-^#S%bUE*5c(XShYRLaD7h-wP@3alX`tJDp5}2im}`qO%=a4E^hLl z?mq$^JBD{v7Abhri&XV&ML1}G=0HZ7jh zwuE_W_I){8cC36zX^evOQh7_BzM%n80At4xbPiWYO6pms zbfYrR^Zwr6C5SK?J}L11>%P}Y;!y1iPBc$-Z3gxcVGSo|^n684O=<9P@Mn*P(N90( z()zzG;vQfk`zEU5oEwP($3eikx|2*koLW@CPn&`o!OcizB1I@?*}7zao$!mmOKzT2 zihbi6n0SN%X7d|CzZ@KNlcjcK5B+crIQGx>0C;N*dPdomx+Qd{d>6EXT`cMR^liWuk3^hCFzc5)NN5QaSjA(8d6Kg`EQ zxY*oGAyV9b0N7r#q>W)EGe{Pa7@E61V@F5N^6VxmH~$rPlU6<(D4#~_XtIqa6%17; zTa1A*NM+Pf>5sFu&#;X8F)j#vdyXe718xR1TIc2+iu%Y3ay)T5n>MvOr#TZLx$`b; zsB6#-XgC;Ei$J()DWcl%?lmEqD=5~bh*0=ygYrcTgdOnD*#C62^ z%|+^b-M)?IGb)x5bN`H_*D6*9uipGJi#chp+X5yGQ826GSTJ@Cl37 zxP4$W>K#$few86w__B}eDUk*m|Ks9L86%wqnT2d z;@J6&O^1vv(WBv|44x)?d2}RhmvVx2uj7q4SkawoHK*8xbC&KdQea%nBOQxcLFI5^ z166L<=u4{v(cf<}VKe_9bxRQDc2-X{xcH=f$)Q$5C#ZU(_P`6m(N3b`r0wn8w!oU2 zmtj27bJDGO5!=J7HSNobDC)0P|2%>U0V1fX0dyy+sOER>{1&NtpdkHylwr&fFR!(J zRQxmG;uOS4X6Z_z&%w!rmPN-ww^WK?jsqXMtK@Hty%`2VNx|g2I0%MSOfsm!d17zQdjxhs&D^UT3jN8}htXh8ht?=cx=`7Vd z)u>S>arT0Z%*&4SBdD>#x~b@bovH=*ej*u%vJdLlV;>uHSvyNHnG?S5W*tMtjtd5p zr|W>1poJ1z2I+YQj>5{S*lXiTtO?6AV_!Kgz-fknjY^(=1sto-9w4Xo#J9c_K{$5D zwQC2qIdu^^a*~OJBp#@Zq=}o@;2|Z&NP~oqUUOFa=1^a_dTvC1`hWpbGoMJT?E@)7-4BD|tIuX!gdZ zA3$)Ed^(#lpikIR_McI-dwZF0Ljyu$v=R<7!Kf%lA(VCiiQrrN*ycGl^*IiYuy2-C z4d>1yOPOf=DeYLB3rcE4TK+3a@w34owp9HA%*Q&NudHrGEr7rnN^ZM;fP>`96JVJR zU(Oo7aL;eJhN~4@^O1xSm}CKrl_4W9ORhq`;QA*|8yOozcZ-o?`kLwftO9{8tTkR+ z73aF1<9fj=dPc3HzBo>DHh;%l5yqA~*6r{AfFZN-Skrc_3@rso%*$9^pW)sZD=K>g z;bMuP_>`22icg~-=|qLC=30Ye=hGD<{DJ!r4A~x`S4!q`Ut^^^K~KevFfy>SV?;;m zhli&QEvh+zhFhGh`rYMdIqCpuq3E*s$LSw<5!x|9og!V=GDjt24XtyUcGT4P4pzcb zkckdUYJ_{MB-F=BU!$oiXgA?exP~cP{eU@ym$KVdA3C!BdkPf1Nx>U&Q;KWPs>pnQ zA>P*e3whI}#m=5m-Es1Iw}-YhW-hQ zS(Lese*uvS#TcA}m^P8*BLSH76;3>+C0GL|f8#UfWgpiOua)Ngh~kRb{R;>z0j7z- zP)(&ZV83qHB1FNlXHV-PzNwV)Nk?rbpldeV`G1uTzkhTGDy6njWv%IxEaD0(w(Q&fN1o}O!aC=&Wj-LNK4(*MCh?0~Pe z`;EXm0?Xb-pn=xk0A$nG)ObYIL=x?F-#q7co4so2xpT0nhA@^+F(YQ<h{?(Ll9g)NG`%GlHt<8lu_-(&7xR*e>(^@bx->B+h}5*E$B4Xerog|$!D^u)=L zYA7IbWar=7R@oQwzP-AEl54vlWMqe8yQ!FxH@BC0=e}>N-zdHxVRagi!g}+ie?z!u z$r`V0T9yC50>N)TTa?s&c}CpS;y2nBr$+%a$C8W4(ciirIOA9hI-QC6b(4qnAMZl+hV z1Ns&wFDQ?a<-G|KCEC~Jp05pdl+qQ}owb-``RM#mHI{Sc%imh^Zh|u}N{mIdtNy>J zaSxuk*0xt#A>((?6Epm|Rt=k%G^HUe-#SqMl{}~6|EDQD!^gSLfB4xS6MLGyN~(RrEaen`7U3+4Y*G_=((8j$`d1l2&57epS&Z_C1hz4YK$I& zZWL=A`o>~ry5)t3g=Y0D)lf3)WEg3?qsD`0J%epe;SIcgeSxbr2Jh)`AMdTv(WwW$ zs2*cf%uHwTQ%g2`BlR31W<2B?>{NEtEg#uwVj*|yR^>eV8ojCHn+tP&NnkO87e` z=Evs(Mm&W{GngP?8qOSZOABZ9Zrim`2+uQ(O%`-K9Yk^hHL@B!V{rLq_3#N#iYu6K zagsvBAnQL5`~Sup-0Yrm{W1B77Ii-d_Lm3hJ0KT=XXb#V_5{LSMfA4)dbmX^Ii^TQ zoP=&}4#yC(yTGa5{C#V@`PnQgs4+3jd>WnptzQPdj6nI6voN$Xm`wiTpOjkC2v$7n z=_bGV+g7ww`ZMq*p~+e}YF{C90V909mrx+*`af}l4K7spgX{W^&YnW-VEWDj1wrzf zOxEc=H=tQ|9=_KYcqXOEgzazvJ&8jaei?kWpt7&$A$JwHHPAw}{u>N=kyHGehd)1SGj4 z-~o8BBO)ob+@i(K`x*M4{r$Q|zhSBybBTjJnEz;g<&molC%*x0h-IV=v2bN}WR*ly zk~I{{!CYYV_~V)``-9kPhs|50ZwciF3dO44vm1o#@8Is%5!|t9*6W+nCMs#71};ml z)TR|>SHgm#xGfp{Sm{)!nv5+n-NH+}|3CKL1un`mZy(3Z+?JHgx2RR1?7&tEZXQ56 z%-fdhmMQJ}mZ`{iNJ&u;k>kLOW=X~hl^H3*)S8j&0-+%yhY=A`5y(&hIfH=6VSs@d zh8br5*Y`OLGvi?H_V)k%{{PSR>9b2P^E~%+-}iIh-~0Mr-|NB@$oV}WP|wE6RAb43 zm->f5_4PY6AFnP?L)SmTOqC>lY3;W)ApX4eiEgNE+n-AyDys=rDs z&1vggu2hDxx)r(wBf01xnUSw-&IKkAFwi`gmL|Go`LuE3(TuR}s#2+-_QsKxZII8o zIdf_iWlODqcFD5?5Vei@N)oNQ0>2z&rPUP-tR#&Xe8pLt@9+j@jC-mJ~Jw{170uI_a| z3K(Psgf~rb{X@e3f`UaN5r~rt`BK2Xb3I%4DeGERSv6F4cSmF)70sYvqU4O;Jk4Xi zW%h5BV-wA>f1XB8st#Q)TkJ?4nOcV8q<8-oY!A+}uF-f&_rU zLA#@=aF$y&05n83#z2omdS5akQhlS1kOC8!X_L5IW?_Lt-oP>0Y5fBM-&3T;hl*?= z9-R(wN=i<3qh#siey9oA*}*}#doRk8BKkl@HLgffm!(IQ%u(Y^H~5dV-?IAie%*Ph z&EHb=&50dziAfG=o*51*!3YTibPp6?C@cnzOqR2kO> z39>7Vjl^sC+H^XeH0W$kn5r+9dFQGV($GRuMM@tDl3f3Q08LL1;v9uL zIgE!Kq@<>ByLNCu-(y1qqbkQ<7TZ-5D$nKLqU^5EU#bgSxWWHjA0X$*^y9!_CkX7O z6c=m>>*^@JN@laqJR6a)*MO&&f@Xj}y202CJ{&h;gbu+59xMC~?|?8Rl6OniHM2k+ z*ZJdqzZC$dO?{)?M2hOZ`XQwC)-Bdq_}*f}7n*)b3|#`x)0U%N9)aZ(R5;VHr@t*A zGKYn24v;t0iCkVH&H)Fp>rje&`%_yG5t5;LG-AXY&gcBc8f?RTpoXyQ5)nYseo&lG z3+*4SmqliVHmgbLx&Yt^xQ#bjk9TdnMA>RQK>ks|aIv*Z4e5O^p!c(?RgfQ<p7R$Sl1ebX*nh67Ki1pO(4_f1;kn9&TA8H(LU&vcSV z(_h0l&A0z@R<315iMAGw6fba$e=fR`BnLjT&o7k{uHpGiG&4QE(h;}sNG+(#Q{F&K z(DpGLmY(;b=x~RFu5s7W z5Yf9SEd*r%YKjc0$Vt~GzR4Hdu-L+*zNJrgflA15na+P2$QaA!F?Pdffk_za9=}Yy z9#YmQg-0sQC?0Hm4qQ6yt!H>=VTsFYju5E6-oc2^art5o{X}MO+5vq$6ct86<_*cm zB}g6nh;I&zACGO?>ZkL_mT}?El0&OKeKQVvKvs^nZIrBsaCKSZvXm=;X`ze8yN1TH zoyg&xW4pROy*Q_WhDGaFyM1yB0cO+Vfn!jB!V2i|8Q;*`qS)A2S$7BdPV;e;7&gz5 z*L@SikXy#kuxwPVBVUMdeAh=QY)(}->kuLmdTgdjpTn;BvLnI8nB2$ls=EQ;!d=~> z=EqG;6ZIcfmzm(0+;**7bna>UNg7RcK<{JKh_GaPQ7RPmytk-}a49G7$!;8ok9;jP zdkIrg74t{FzH8AzR?)*0^ODH$T7lw=VlDfIqh6~ZHHP866E*}4IMt2{@W+qX^vYOD zqV1K<=exVPn1cE7*OE z-+?3GQq~%wT(WvZjQPAZZ&}&^g6#W}wzxGF(!?yXwbg|+4cs6spAx&|^H)-%yhyjclalbaiepC^L zi#SqZo>1BhSicQ^5ik#O`DKa>p8$9=ALGQbo6bGhs-RX2x3?vhpKm%1!x|VbSHKrZ z{{$9_z?+v3(7}OI^X8)6Nc>rO6i7KK3cMMfPu6&Av%K$<={jWMu&_Zj@Cn4_!U9lj zyGz@GR*OWUgWvAjwX3UZi_^YyL5yXn&%5<{f3FCYP#>H`LYs(OKeNqWgu=Hn8||4~ zNXf$=hnzmQDW}6iFXsYrwP5?ITSVGFIBjS(mrD~x`&;^&B8JJTGiNo>3d)>o>qNq+ zsrn%xHa$&+%a*4kZL8jr2|GTkGa2A@2ZI_^4|7P^X~O(#JaWYNkDdT>aslS;`Op6n zH`*peG~EvmIneVBwxjK=1t085gNAgW;b#+)^e6V=w%Y2P>gq_DKv%104N4bKu>`KP zt!fXThxm7#0;2l%1(40=0_C4N2FRDPN9(S9&Fe;SPBR%}nm?F(oLtgYB-6kmN&hwV z?b*3yWmCGk;Z3UjZO?J&3~#|>WWmHySBvlVG+5i(i!@ylcs!m}kZ&%0Tw8<>*eh-H zJBF{)$LzRUG+fEfuITI<9>4(Abvx<(ZA1ghZUzZdN0B%`Q(Pm~*u{xzs!~$e@#y;$ z^%&FRT@XPEwO#d2Wl1gLG`djHPuY4{OCqAS-dYZV5r7wWc&LseUR%7+bX|kdL)otm zRMn=PlF3|RB?D+5XuYe}EPG@N%%MVycR0}P-J#jPT0vZYZk(BQtw4(>Dh zNqPD$`qo-`*bAXG`PN)t_emL}Q`Uty-z(y;OUk#<*f_c}Hm86~Pmr@R{4aCKJ`^x^ z*%pxgILk;uQM zG&=gX$v)BxJY-ZwOZ#a+28}w5xBdJ(Z}tou&Ujf{QnGG9D7<`=w_!y_nw>&@@(`3l z+Uvl0_r>F!nF7A5_R^Nj!0IjT$%M?KG=OgljvMV>l07hlJ&cF2XT5HbyBZ|VT>cR- z1KUdRCTM?a({l;_qNil)gxrExbkEi+-gZF0& z{Py&ys-){kTM@cCZ&pxokvJr-wCDe=L zFXHw520CXQm?q@YYj_iNDXFzLPInhcv;p?&Kbs8JIE?F{bv0H$Y-r@VYoqCqoo9_h zS7hW}fp!hMhUA_<&Ly(I3v_a!{Z3*QfnEWwc(YPjRr2euCEo(j5z7A|yj56+y=JA|{R zbN_Kx(#z+xSK=7UNL_}Jt7l$YYXV#`(TxVTL&Njx{TX{fxYlqTpr6F{rD5Fk;r_6S zBty^c`3<*3ve4!hq3#d(me#lOMiayd$VPIo6IPcq>ihC)Ynk~sG8?2f0iwfKoIYjM zz;p;;$RBs%KjESn$&dAji{i*v8Ar+R_|UA0_NB6-2`=uNLbACnU(_h!OWyFl=LmiiJRupIb3Nn5$bjTjeVkEYk6_~zLU6Uq)X zV)U31D|@D$F(UrT*L~Mt`DYVAYmt46N9;WF(I~uJoYSfhwQ=UorN<1D$Iy8r{Tiv*iqcHNT5uI|2wm4$oY{4)A;J5z4gjf zcw}RvOe9UH^;x_NGU8Hz#f&lUl$^qqIag-)ZU{K97`o{tF2synnaUWzfVMgGqEh9+ zxP{&-)BTMmD=j3#X1?3XW+uS3_}tSDYVy7`yk1-U63m1EuLMVY^(ys!)O{hd2aOpayrq9yTEAA`Wjp z-!Virwqo4pexoY-?-frAUdn6rBf(V3UY66x)f#Kg0d)Mf{kslwreihv?b=FL?F$!6 zWQlH}-)1Z-AjHn<*0N(MF}BV%QK4B~C-=b#hAwrCE*0Vt-d71t9?A`yluZO0V`V|h zvG?!UcthaM)GYi?mny#zcCL83M1{f*C_)G)5<;70YL&)pOGxu8wBEec*b=Eg=JpVw zmJBv}CD_-=hsn+_DasqphH9D0W4PTjaIHqGKKTx1zd1x`_2iS+JA&e!P}|>HAK>Tb zn_j7bEfmSGLUGo?J{FJ}VL5fbdjK`n&Rw;lunVqz@|jb17pjTNFyXSa{~I-=3cx2| z6O-dV0=e>`f-9R(BFn6Ou`oaX=Z(dN1ryKGefYWpHP5Elr`JnTA*kr}NU2*9@Hzk)<@4$5pc|Zk#m`tx z$N+t^5UdmigKvNg7uIwRd0vih5k6wJiK=8fd!HNC2>=&4*;<~dA&!y^r(_br(a3x= zsmQct;d#JqN>`mCdZW;&ysMrqSB~i%EU-U0G+ZyV6O;}cyf<4pO9yexWp!<+rZSzt z*!piE0p4`$Rt?&D2=Q)WO;r})$1RF!Uyjs%XKil2=#`p~AObkb3mR2VBiF&+&MNUi zCyYE}s8Rvz_vC zo%X{u&?gpc394${^r)?KH}GKnXU$krim|#73m}cvM-#l9DU)b>wt6Ix>T?;kt|b8gI#^E-Oj+NFcGTjno!p;fmxzTpnFl#F@T+UJPrrC7Q_=jCcw!F zF>X=#*OYkEJ3-qGS|9U0Rq@nH-Sw z=@kDb73Ua{cJILA8Gmag)Cce6P(S@3+s{BQOo0mFa_&FE7d*2DoHNu*vqi#O!fzQU zXg~EXO=i-0F9e8(^RJu=YqOcJa}yMgUGIdl3g99p;G{O5uO>iYj4-t6ejM_76A5)F zYJ}U%voe_^?|(-}mpcsq<s8*fQ9rWwds!0`T38dPnJNe}3#=ff; zsiJw}C)@kd^anYAwo!mab{OF=@CB;o6a43gAhXD7X8NFJYTJgXB$BhN^#Gt}plx59 zlv6k~<=f%_SsS)Qk^YVgPnIyKZ+++p=;oIj@_vh9oLm`;DY&$2-HU6{rQaE2n$?uH| zGI+uzU)S=er9b|?vg$y9Kc)(jUzxq|Yo{r|3ekRep?_0wB$--(DVZeUAVd2!%|V5u z;J{=@&JNO+=N2qOD-HyHGsmAbFAV50@?y(Ts?tC?2tq;{&U#=RJ9$@%%Immh{^;+C$zoW~}c1x)kQ)XWC0jf*=$KDTtZ?qe2r4@ym6kN=2k5*>%61&VHM; zjL2iE)&$u{n#7vgTA@=Bb}vp|(XcfD1;MI{+D(q@-r)zuyp>MaO|{v~a+}6mqG@K3 zLTaYSPv7exj66SUMGADrqg%E?*@q)N?F?^C4|EsxuBA-Zq^1EMd1Xg#Z(-bUWqEXT zwn&7qh{;~MT*G?-zuvD*>%G|Nm=g9j6vi;9W_V)b!n>&;!=_Ni}^yovNHpPaDG z88?O%0zr5=G%=!7rlA5dhqqf3lsL$ohl4NG2UX*RUmFxeGVq+(KVLV%*9fzrld5W- zI7b8PktKW7nvx^w#t~?n(E=66B-b=rhyM)P6XEEg$2%$Qmu~uxxn70qt|Xz zR`<{ls)7CBNI_NsF-?QL9r{KPJW-Qg4aFvy2+$B4aayqA}>9at2Tp??_o`V+fbSa&puX>~Loy8vlK z4LhejV^S%ySuxGE?gj#%w-E&&3cpca>iif@Nk3*xu($6$jubQ7SVQ;{1B;Pv7*oNq zqm#2M{GO}MfVr@CaB#4wtSr&(cSRJ71Q>g1xhIpPr00A_hzgd3S)C!F)DO0=Yc$EF zQkiHj3eMFPY!Qa^t8Tf}J7wY~51dh)7k31ErgHpJmf2frW{o_Z4|bnS|4n z$kL)!+FNCfi)3BrmPI|c?2Yoy)&%UAoJ1eLE9?QRiK=~&`W5O7$0cY$XV)s#M+E_Uj*3dqWst&B zySUD$GL`hK#@#9CH7>`=*Gw*8a*TX%5e|ysL>tndnfXS!lIc!Jw~HQYKZrfp9Wg?h zz*N3mACB_(a*YN_+b1`+F@8!YjNA6g?LM;8mb`Fhpx|cP<~&6+Y3ySm24>l zU(6u0%vzf&$a`lx`fP_=_bGB`llY&2j-N?lZmxR3LY!?UJRy;V} zaU8EoPsU3N7yhkT`^8GC*4|RrnBt-vjHCYE>9mTLOWv*EQ4*e{KDJhU<4C%?6vT0F ztDxY@r1I^Z`8J*iIL&yb9k+g?If!_Z2|?6p+i*};IIyZ6F|FLeRBB|FBx9w_06H-z z>Zl*QeX4JKco|H7F2a~U|Mc~|fY6Eq6&sS==EK5qiq#J?32JO};c<9s;JW|ZYB1vY z_@Z>N%U+4nx0vLjyO2!b88nbFq^(yKR8?yh@4iiqYJN zY1tN{i>#`2CDcRn`QgKpp)8GuZ5ZszOarWoU4m<({eOeBaWZ5Kv6+PO8+-SPz=G~_ zlW%sZ-Hsy9pFu~~t~(5QidyE%b#+yT54RKN=uKyD*E}BwC{e(fK#1Lr+f;z3F%_fI z4IP)CfH;H=G&qT5Ca;{8ln%{%YLx_A9E8=(HaA1{>)LheL;>=qnSaAatyx~rf)kaM zw{SIP9}XHAZWBhpCUOZsY8!-45VAzzTH+i&CRB>kAj$_^^cN|KOz(}=eAiPU2c5R~6PT!f(`+&ta{=|1 zi#{O($I|R$fqn*;FJ_QLXm^w5-PJh?^_5)Jrh|k=^1%fBLZqh^sfUX^{KM4o46hLG zL<}X+X(j6>R{NoK{B?4dQo9^AruXk)<>?Uiv$ep*tqT`Iij%5rZ8tTCN-{wS(qO## z7yf=!`#{L&14Jbp%Ezq%Nz%&N-1B+zv*Q$zpqd1`Pl59Rowzv}=A4g6p%yAL0OiQv zQeD9W3cY-lU3tXbsN2|WaG+$lSpR&xvcmJ$%bWezO2d10VT(_74LZ-7Y#yiyYo_|m zfM*$UdsursL`Z3WEQ3JjI{P5Rpz1gi0?Uitxwfu>L$hi3sVa+9b^GP6k4j${klUQ_ zhle<47}l1?u%e&i&ech2g-r*Wi_UXN;Z-(Pi5Tl z{u~4D2bvJdig;kxd)Ftld~s)Ik3-8Vp6{M+9Xfp?ybEOgk~s{N0cOp{rmII82720TfU5ntRWPx^%we@!!oJuwc6TE(3KwaPoXC33kLF?7v-_q5ZVzRpt3ycAwbhxqzU;*!GsIi;+{fdDT@CNcn1unQz$Vhd&`!`ljW!KNst8 zr$*apJlaH?@O>_fdW%;Gk7BHFy2zJM@ala$&;0}DvV5nH!hPy(p8gmWl_q=cha@CJ zePaEKtTQt*>>$Owl4dklADLVs9?)H1=>mo#fp*T7+zckC6tLabXUtc85>1#|HMn_O z>owlafp|}gqf~)RF)mvJ^08m)*Pjz!au&*3iQ{AlXb}5OGjAV>yysfwv zTv<`KeX^UILAscC@K`VluSN;fvwHUm<+S>z;lwpk_by4^c)HZnEta(WS#08O&B0sc zg)yG)Ii-1WGJc2LfL}L+2fL~R%9@LaValde=FW5r+5m=7OB2>2*$7MBRH(`67|wQ^ zwuDL~w1IQEPkJy&T~C zS{#zstclILz35x)Q}*dOic&0#(wb^FS9cN`5*KVlI=}Ine=Zl+ooZ||2CvHz1rUm(a4$hUAsg!6B%yun9@w=h z82)WOX=X%mhp+4FJas=LcgaesQHF>^J$E+evjkQKZLujDRz$yFD2AB*3_k)6hRd|aA7WKLry5#5)6c$hpT81ZG1b1? zL)%!4NhaVERrc>ao?7hA))o9a*^-mV&zB{6KnqTdgaQdRP%um`HxOX^u6&itA%T=N z@?f=8bWw8=q0E&HtaRR9i{WEvfRwn&`X@6lUNqRA)Ng9TD|$;KlQ23fL$JpLBtzI7 z-q@2_n?u4*rDujx-1PO5;VOt~l&KEU5U`Pn{=w~Aw{B^z+IU9<9xldTQljK)1y17+H=kEQ?1-!>8W8r3qr(eFfaTZ5#LW#5a01xLMF#KQSK)E%<*UE-*8CU^ z{>Sv{l@$R2vv}7EJ}78e)@q#x{%~5`@(~iKd5Ytd)ggCi`{0n-eo>O)8nkY?6Km>l z%0#DdVL+nYP(_MYBqot3Gq|Y2(8k2`u=HelMyM`rt z;%Yx@%}_$Xw{Ppl=IS*))w00aT@G*5FFH;5argXh_keebeM}t+HTY|!ST$l_%pKTv zzLcI8-hUX*R1(ld{W4F!lV*!jGTdUUDYkBUAXWSsmKrz_cQ1X}*x7sg;O-B{Q z{F&!S&xx(5-DbV2$dn_ke;AuEbUd`dLKQ&_TE3Qyr~ck-O*rr^4)!)yBZeULuQJ$( z>{4-VO;c(%9j}F@%x$P5$*nZsk<_r3gb#`r$Vg?-HT$*)aC{Kx6?`? zG=}YedCE(Q(~u6}X}w}Mx2g92Di6mcn<;2uH~(efkFLn>{$k~K`}Ldvmr)n2D|)=B z8I&d3r}ZPy!5f{tpM+@!hli-{s+PqQk9|Q+@gOY`-VFO}SLb$2u4==aij^e0gip@v zEG}iOCURDD;6)Y~>dT?s5j9v)RdchxGqG+@fcgtkF>zl+`8K4lxE&u-4}?X9KebuV z`yg?y_}E;!=J5+TtO|nJen01-Gr=zPZ=~G0-J`xHUUDYUL4TZdxw#r|Rz3VAIIDee zS^d4mW4~C$DJS)`I0Usfmr2LxY1cVLX}dwvsgWNnY^o_wItlgg7vG`P?QLdt+mVve zAsr-@azq618wjnY8<^!Fz{32W*6t&VI_NYg5729iWsx1tp`mc68#V9n$VAv86}Oy^ z6k~DY;+DGh)4eCFAsR4Yb5wC=Pe?!@j-Na29+&5d0PQAEoaodg_o8zVQ)ZS>%r+mK z%c6*silM%^(}TTjWsEs!m#$}PTf^$#ug9jY4$ao}JiMovEm304Y~7PtaeepISvQ69 z|EU*7oSzj7V#&s-$#{k_CVRPA0{sAV;+>v(vZ1?nRY)j~{@{0K`DiwJRj-gWWSz!0zsfjzXllRb;gg^|%XFP~wz)P6;tiFp;saL70>f6S#JN~q6U266x zVd8Gj&{$YO7=QPb{^58@WmOz&rl2NbDE19r%F6l7hLk`}7tWCrtVWC<*egi(ss}2{ zNK77uecu_p9yr}v&ZHoYnM-e1*dToZ39I>H%nT-bub4I;r!w;9LRDT(V9~`{$#Oz= zxD43BQ(}p}p{dY&I#pINiGmX)rKOBkyg>AY{*5~~?J6BJcohyf%R^<0dypUuDJCx2 z7pQGa>-9|&Frx^4t}Hl{6@9Qqq2ak$tv*Po%k#GUJQlLe#6%VT?VnTiFkM*I_d;?A+5<1`TMn4f8j? zSo}q$a>qVa=E$Luk>(bg?mdCLhZAVDCo>9Nq1|KDOzas{a=&_bpFp75FD2p29i-Ha z&BV*k*Z(wBz<8O#^^9V+{tDAzmKFdp^2N0iTsHgQ=p&x1%1-iSv5G^?XLMVjsRBXn z#>N9sufm1ydH_GVnI*l-z?$9n?tNXc*`+x(#c<^`J9RIuvf?Rt6$&A{$?*vQzFeKv zv6d?z6^_}=l}(3Tsmif}`IZToBKd?FB;aZ$`sX=Mq9#AICLOiPR*-9D#lN{k%;2(c zgNlNcSJVqdv6RBd`3+m-&&uq}idN{VRYLE7Gj0K^gd7~-4NA)piegFr0Q(@n zn?7|iGxM1xi8qMRz{2o7Oyl7eODMkS1F{35=0h#6w+~y^dSYk8D97fbOFQMH$>m$t z_nC7z!9mMdO{cTK|E9C;(b=)Y3V!bLnEzu_P9;e)jbz7{qc9vhFq7%=MhzQ`tAMZf zE|Q&lF^3Tj;=|Rc%mbJ@D_FD7>wK6K8W)^3SvO7B+z;o^NmzAy;QBf&OGh)9(+ZR1 z8+&HYc#m7R;`Cv;8RM>!0*P-a8HVd#!Mi`A(03e1)%MFV@lI3^D}mI436^U}v!C^Z z(==Ak)DDKo#jqi}O8&aN$PNqCDmaABeJsX$-|ugSXf}=-v!bJIl}akdmKzr{ zXIIw?(!K4^k_ZUVaVS4}2omRYfknO0CP;nz=gy{l32iKK$Y!3po~=^Cch_|D;L&Ka z)H<(tc(?u0z>ehZV?A@KthpxsJMde08E(% zCBF4n9z$(yZJhQ(U2z_i6;L2?WGVy#nK@c~yRI(1pg@7iWPMUGUNRFW*@gHIPRY?U zY{1d1S8ECP<&PAmVXt#dZ?o@X))Oa|0$(Of^KIsRwrW7CU#y&t<=cq86m6o%_UOWe zXO2Rm3oo^oiN1*b5&jj<3khjWNZ=HawF{YL6EYF3@^aZS@w0N3J>B4cVlz*^cLawz-^aE*y>7TRIzBS1L#BdXUPA*!x34?~06RO@w$?A_0ceyQa=$nu zlda}ukC--4FW#LS$cp8G=7p>*596CI=-Opw*b5yy;dBXc@l4OM8&H9;e0GD zY*yBTSJm~3tWXJu_6kc$2yXAj7ktaWWL3>sxX{;m)wcWjVt;m<>8Ptay5`j9q~xV5 zXHuU~p`5-psw2fMqb^E0y^IY=`SXG)jL0w56IbPgmB4M;M}$`IG)pe>A7TxfEce-H zmp8}z<|u&7C7E>~dlJ;`j}>&TIaaS9zSi5UfTijJZ#)yHU93B7m)&}B5yU*p7vY-%*bE4k5qPlxaHxq}jQhtgQSByvmKJDObm_OL@M{hTOWapZ4vBHqedui06}9 z0E{V0Q##UoA5RtixT_LK2CELvtu)6TO-V#?6VW0#a;eSs+gH!e4kSr>VOfyL)?s;} zk-i(W?|Lh8{`i88*{aI-ip4mS|0B0fn=j(rZp6zGjC=mW++3{v_6-anhkOAt+18~E z7!+^G1ZXc7wFPW<2x^FM<)Hrq=B#^hVGL=fk%B-P$2I>-*AL4f*{`dEknSx>1rPfV2*F`cE6E-=B>GIob8PqY+8je|O z7;tH$U0pFf$X9j@L^Okk0-6=G?WaDz@LNW`U|e|LzUmT}Rr*h&d$>HG*`ApD zUCsp(0_p1PWTK7#-k_s$`VwfQQak=g@=4l-e3-+Aq$Z(a&YMNk&Vy|T1vb&hf!pd_ z`Z`Ak)dxuPOrUCBo`7O{)-P_V$?|)tY*mgcp;8YTFXn8uG{sb9WlQ{;QFo%Mb3^8r zf&Q78KRe;ut`ok=^1;~Nl)8Ro!h&S#nU}%W11MjSdL3zmGj;Z+3--ED)xkh_K`dz( z8RF|L)tU94^)>D&aB)vIiSaE*$n&;u-`+L5OX^BWOT0x056JN~FqiIfD&ZqhbFu=5 zNpNwX&nMSYJwkPL*oQ)r`ab74o7$D^31yj)DWMB55*ov$t$rAKA?>(2UAnz}tf!R~ z487+#E~!Cv5F0MfS%QMJmU>-R-(TWZP`|TLZJa zQ3+l+r=pX1#hh;CcU_mOu3XVEvPXAD)(_r3mUF4KNc__gn?b9Fn^7veALbe&>!zl{ z@?+PcD6*ajt$;(a%5}uJ;Imn#Tgm&cHL0_3YzdqDf-^ZS=4i5I8sRX?cu^v5E$gus zbT@m(7Ng2*@Fi!(OE8nR+uaxqOsu}Ut1i~IlTsjpyD#!VyVn3KU=Hr=YiorxaTlD2 z6YXG0Qrp5R;AzbQ@wr=Du{vYroot$V7-3EjZQ}9WdvSOre4pc9l62v6aZ|F3tUVz% zz`t)g)c`@AirTHmvFXnJ4+8Wo*lP@bv44Z=KMZ2YxiFtW9T8I9Vql-uo~;ok~!}t zeKap2l=@}Km*3LNvc364S;Kx|IR3!ZqZp_*Tms1%^E+VZ+W_#h+@O>1t3^3^Q)pyS zC{lw_Q{$t$Akzp1XU#XL=|^hM+EX!0py;aW?h4B%t~f{Mr4U}=}a4DHSZV9zWZ)i1a_{lEA*Bcu%4yb0t6L*}`7<2HQ zb)qiF>v9{h1KPGT$UOgG=Ib%@N5Mr`pZIX`x^<8*YcLI|4e_j{Dm=pEk7-fZh; z;)IyhOorRVqdO3f70VDUnEloHYOAaNKi`g5Dv7Acnc0m5=WUhY%@uA#I=L{fIy-Tm zM0a-P4@gJQF(Bvwc+JaGx{;Fb*)bV~e$kNPrTG!C&15LKIXd$-cL4{wFX*ww(fdSI zCzTC4^nDT?Ij~GJM{l7YA{Y)gE=$ao{x@nH+!Yi~HutkiO zHSY!lG!NJN0yz!;D#8En8692_6C;|OT4e$mxULmyE-XBrTVhz@!H1I#Qvo^cT=Puf zUo#Md-FUn{+Y>dkUibyDk5QIA(*i%sYoZx=W55%*4*Vl>rgM&fP zrqAekVHSfdP0pJ(r<-H1hnDWuRlreW6WOv+_y>f*u>al@`7K;TA(r8Ey>1KPRYU z5b%+mGw+m!){&5yR*O`2+mJ zw7!Et{l||VzjEcuGo_`a`T1keF(0O+q(FeK+c#nSC(IUuV>GAkGosc5NRJb1!Lg4+ zBCJCpx25Z)!YI-oGAM}lPGAO5*iL2~j zRF<^9NP&@J%zWM0M7JU!!53{s>7>~cw!}gUF5Ph%Be9ocpfLB@Pqg|Bq;@!{7`nyi z3GVuRRxE~^GNKXm)}6hKT^%4$z=e^^emIyUpEnFfZ|g(O`abr73;31>^f*ekC6-*= zmvi>ToJ!J{dY>0N5?n+Ycgo_)0m=^NKaw`|I@@>G_`Vxyl{4H&*oPJUB|IN;o|1%O&yEwG9VFV|yy|p+2Q(d% zy`L}C~4*1aSNNOX?@u1(V= zmWyZ2aCGyugK0pYvl=|${vVRn%Ia(=;xn8o7VS%OL2#*t|3mo?Q+HF*>@@cG(sjKf z&bR(`AuG4n>Hta^C(Z?Drv>@udP>@V0v7ixLP@~^^2+>|r`p%LJv73N^ZBj{f&^2` zgsk`q$J%97JZb1;EHvi}1_fr7UCw|=osjos+Yf4yEIC@BB|=gro9Q*}M`NIW+Tg7? z-7WAr6@$IaZf?K?h1vb-S1d zKkVh9q=BJ>U0Y59KEW9y%0v@`59hy{67cTS>;!*?ZL;s@%PU6WTQlU_qFnmP;Lcd^tCfW|`q>*3zre2+9p*A#|2~f$SS#eBCJ3ZA4KPEfR5T zy&{L56ay2VQ4^|*yrFe8%N1}dm%AXQ<+z(DBrg{_3RrSkktXZoi~vL<+}>ZGN9jWo z{D!Y*)VtPh3vashUK!~a{U2X1r>t5Qke#A|-ev#E05<~Axg`eW(NtEsCO0=%<_&eP z5+08~xDF^mJG2R!OWlf=CW8da2!9zK?>8p`-92O5oP0LpONt;1NCux?V9pi5LPp`3 z-WADO@FvolcJ{Gxkv9uzKjcQ>nw?$ZrmoJy7~;6x!DnGN5BK;q?LQ0sa@(tlJl~5z zg_$^6ce5;1pj=l?*o!6prjIf9a`ME90tGY}0^!gOssvZTI2w~>m;E_cdr8kODnR7; zBlfon?aM)?fk6^gzd0;6X1gte%6vuL*0GLDdPYr-!fE9>$0ZEuVmynM{Bf#XVx7U| z#6+oyr!I^?t=@3H_Z(Z}cgS>!v;_2y=rx(G?q)~`2PxkjIyM7dta}^AD{eX}xRQDa zOa9Z(1>SLD*RCoQKN{GD+P3iM%(}s5!G_#cqog2@>f1oX>Rq3p^2NVyKGXHMPy9m9 zK7yRM5(8`OYy6E3ydXn(E+!Pt#11^;Wk+ZcdjE{9mx;IDL?OYAK`dal3Uxgk8yM|WtVa3xi+{f zIF(A{_UBw|SS2Z5DSr z?qBLQp8O3>gS|hlN`vePiqM|O|MeEHhp7-fWg^}R0P%bw`v(){zZyti7Ryd7^Sx>#_L94q3eAWi1A{^=^r%yeXpD3(v)nf5o!l#5wAciq7dfc7Djgkw4Q&fd={GoVt}+iX~Scy2rn z;Y_(*8Wdu*Kl9xt|6N#8Lcs8FL3Oq|1OH# z7v2SK;r;X4+`B zUMzb2RQtX|{3|p%F_cZ5AW$*Cj%7-hdCuFk1(YSh%E=Qytp{2h!W)~@1Oydv%Vz)% zH}R7G?jm_N6jS(f-#;Ll?X2$!a*&}GF^6p}mpA`}sZo?Dr#qV}Hk&Ouzho&YVa6hj zsq}k}-8i0w?tQ$cu5-CAitj_SWvC`V+vyvnzFs5@I`hA@{K#%HkEE;XG~m z1;X;`VYWaRmK@86JkwU1U6EJpKOkpI!3E|kww~i|8%1yc^$J7Rofy z#K++l3posbyeGDtc^%BX@b7q{n%QP<7H04dc28I2b8>f!DWF3hCblHe!lQAPC(kj9 zAv8bxdCW}xy9ZXd!CahzZhl)lG@lg4`rFB5kK1z1z)1ese79OL0~}#~qWI-I;=gl6 zKCCyxL`QkBdub!TXld^X%_2#CrBVlbtQh#&Tmieo{a-GRFwE?`PbuzQDf8;=_L;S~ zttgOCu3bzF9iD%(tNW)T*CL{jOdSPU{Lc<}k~K~HS9UwQ|+L+8ltp#mE?7cswg2E7l&c~-c=d>(VJ6F*fgp-qPQ%FpA-k`3=B zi7N|;=E)^ypDI1{R8UA)22)9C5$oeO<-6X=Fu(8VZNF>VM+=Vcx_+2mkpnA#N%gAP zQyZ$FEHdu-03JoB3wkK|Sw6cKwdK;D2cOu31#md?eSo=8q+I-r=pK%A-DIpY;c-5apD)n*XW>i zx2&HbS~R&c7o3g+e)qHpm>$c`%9Qx#T8`z-!(jGIX=sK?+VU4v-`~;SJREnot~Q3m z7WDiCe?$c7gI~s}zeF*cRFYdE^5}+wvqw8QhYjUPsxzaiowaA3f0(hymeDl3Ye5gs z8Mr%-fr|&j^UhDw+(0pV*A~M|4F>l0C6GraG=@KHnZQYAVSwcu8Nx)ffYfr(%-VB| z()3XxYQ7owaz!p0ImSmL{GIqH#WaMurz`Ri^l{Z0qHbz-tp-C=VSCXAhp0^Nf+S|J3@2i{XJ#p zK))7NwvHQQX~B&SeGVkFhzGejF1sBDske?Sij&kdm-=t%mGgG2zmOfPcJ8HG25!eQ z@f(%VffBom5t*3^-$x-cTk;$IdHycF+M`^MCth3XsY`56-Hiurpq}4b*Bc&{BmM3l zeJmOF7siqa#~EHJ%C+AIp*O0g*Y2?oABpBQ!AntVxdE5;zmkuod-{JI* zuuNt5N?v8@mOdQ8wg@y~hG6Rh6S%>22T>I?^nCOKKp+hSO`el!iBx>g4fv#gH+Zp_ z^mks?5{q^Z&w@2`y`%z5%Oq5eMrt6VT5Rq9yIppKMQX8?<~Eo>N;qbbP)Qs@K?8`cV7aaY%T@T9E%Xz9CUMB`)^`Jb4Eh(yYBL-4xP%D>>DO*IH8ze; zSh%NvVw9NSZksi~!b|G&W1!Y4(ZTNrsxlPA~s`}@~zE1n@7cuP1y^~1lE9m>bR zW{|Tf9&L#Hxs&Z5Yr>vBKsI*&0R)V*ocs}i?^E+`VN|hACdy!P_;*`}Ob!hp zpeH6tF`!^QQBfr)pz;f%T0^+bqIsY&=N-6SS`#_zKc|4Zoqc%KG4;=#0`7rR^Y3kq zFGB5UMRq`dG2g^2MSKtC&m#rRJgPhjxNVXc=5cC1Kg<1b6fFH;xFYueOw4Z~G5&9~ zaYPO9ZrG-g+J^ouBUjc@k{sO8_O4?;k`H3f$vz)#oTeZ* z%~H2Kz;{=Kn1|QQuE+y?mUoeRx*~_5?Ke{r{{>ex0C|=PH{4F=^FOeS2GGRUG?`Yx z@Vgd2UG6sWBdUlji#%ubje6PjJRI3ma27U!i%cWU|KMH!($;kk6fpihxa-K9W2)AH zT32N-sz9Uu16ncVq^5`#uj+Mgpw%Bwl3gG&fldE7mU{ZOqzzd49LGhp=@_e0t<7w0nHf!)jG1Mb39`gM4m$*I-P&{0QJ_BPmpTSci`M~fK{&9tr)R6L zucOg@r;q%+^RgBi5GOvWtgCAsGt&G78YTU-YM_Ra^sKCT(lVnDK4A2@;*pBOTlmW9#hM|Fun2Vnui&yun)> z#Z8VoEdBBn$`Wj;3Nx>?Bd2smW=-E@LGNUmH2P3GJ3H_@bIYUQICh_{vrptLSjf*$ zQ_P2Fc(IrEoEP;rZgLCX?7**P;G2RmmVOE2-9p$&eU0y?1r^W8#CNq&$_(pmB2#*_ zu>xKhE73;r`^-rE{qW(#p%KZULqFOKzX|14{TdWD9d;PL1(n7>1Pr_#5Nzp!)WPO= zIcMqdYUCFB>_K`_^+C|hNUqshFagEt0U?kqkG!@l>YAmCSn3cfOTV<#A^F3kp7tYJ zi$M#<0DXZ$lhP;;$y%O=BjE&>nw|}4gA3Y%1}y86%b`GOBkD&le2HGbxTjdUgq5XV zp0d=@8cO1tk6!*;dfPWW@g_5G#6R?|^!h2AQJ%YS;X-Ne6Vl$79r|A;{S?xq6ZG!! zx<9XRN?v0_1IV6oanoe!Zz53yUl1Kt86DLgFK$O9J$%m5a}tyU26x+NzPA~>1Gy*X zToB`6t>Jhd1QhCf);K8FFjLMJk14ylDEF#V*Di$@pG|~R6)wHw3tRDz$?Xd~I}7sq z7s>if8j+t5{aUlzHy^*_Y9qJL?6h=yMmC0&EHEj{2LDzzNXjvmuX1l46Ig|giH8GL ztyg5z$5}Y#bUUIR=?p1TOr1)S*`{Cq z{*DG&>?ErObkZV|t3_g@9;aPQ{}e63wZXLzfT}00OQ~X>RIws$U7=3TBl5?ZJWyF?t$lh-S^)GO(0bSM1A z<+etL-)xcMzExr~U98bsQ?i~efShXGcXADKs+m#v;=AmA^F^Lq(7MjE)i1Br?^Guw zFVa*>CHz`_Zf~h;-GZG}*J-KMFoV9QCbk~8)IB8>S4fK6V1NSJhJI$x=gICzaNK$7KF;qc0)kW)z!7}AovJyhBV2bZlzd6I6I-l6HgSmZr!e8BwgDS z^PnT;vA8@dsI8U%8S7DZcXy=ccmzYq8|R01*BE|wb!{+{p*q8k)8@Gvj8f0uy%U@g z?$%`JRv9(3G||n)sL7``TWE6q@e?P&%I{4ZzL7Reian&qP+wb{Sk`t%sZ`Eh+*X>H z!2b;Gp6u*w#4-q+lD=)P$qF+3+|XcUW&Fet_hDBP=spz1Ip}fq8+3I|A8xSmU>(Zr z`ze9A6P>OyzTaK%vBRWS=^n#r3tPCT$StqgEw4B`rx;?5qM`nF)CMi1U?pPfRx89^ zYyA8=klV!dNsaa-{>jWl^op_Efsk?YmMvQX0><8B=pQDv&gGDL`OP~=~Q?67`Rg-p`~D@Axnhjeatv-x++RSa%iQ zDu*F9-6!f|eB^7)6mYQo&41}OmOngocO!}T>_8Pv{P0of(9vYUaC`kwO8wAhaBN~G zOGOk>87SE)@9G-9>7~0_;GpZFfbh;QSbm6$makqgQ;Qe#cMw?892X2M6%6#_=7yvy z6NDdPB)q6o;5C;f+FKE}x7t6ui}-+&+vrJ~bRzPRRb%JohN zt3r#>8PbR$3QwafiY7&cb82E1Cu=y`{+Gx+%piSChIw!f*M=H>!IKl0|#0{DMQeTSUPe2r! zR?%VcTg(}}{;k)?ctQ=jI}y$Gl6vO8Gd+*gqG7NYjO|3z~LY+xU zq+l;ud^`qBC{wov=r%Nfk+N%NY6nS}nfL9#(%}m|ZvW-q9EFv6h}NGNY_QR-{;K1& zqkH3na;3jK1Y1$z+TPmw;aYlwG#KD`I;mrXS~0*5<2^0OAnCqCLufCi^^?~|(*3M> z5)N)pG8@dY;e~GQ?%vZMo0PvEdp5Sm9@1VVy!E)PtO|VL&KIn zJOzdkF@@8nQ4pkpwv+oAL^Qq4MOpRi|A*UiSEE&1vX1=_an64B!}>F-UE{Rk5d#o8Yl+X?2l|@fJRsX--cAvm~F-IH(m4-yBn3& z0TKXHmt_SrA7aiSh8yUEe`9(b{cB=5L?Y?vA|pK^(uN+)9LlZNECifjmd&RUh zL(-eH)O5qWnWh|b`~%xXJhg}}wrcugX{v}cRggdxgaYE>j@-JA*XFyr4qk+%HO(MN z=Q;=LH_H1VMLi4B>rqFRMI4C_KM=2`9fTye%JkZ@m41@p3JKoEIvip`5dZYXNwlu9 z5(vs=zcbxOKHwv7gWx67O+ytTkU!5(PTH#MtV;Ii+6bqwa5}=Lc9?Ziuo;%9-$(ME zg%E9M&OAkuVbtUb{AoS?E=P~>g={Msf5;4`B18y1)BM>8mjm@5?BWd2pcAs{&6TG1NMx{SSHEMd0a<(@)K~8Toqb7a0>dDIH+sr zQ$^LQ=-9ys(B6PKERaD)3+*kRmbdC|F0Q+&RV(ON*3$^iCT&l_ICj%=o(Tu)nGZ?& z93_2!^L1|qPQGILW2!old~#CH2Nd9FKlf69PN3XBGq#yP;lnSQVZ^%eqMJ`UJa`C? zLPCK%OG-+vZ5p6{*Jw1Pf^~lmq;LCha$$D%a=~!9pmDP28ob2R=~fLVtNk^k@3s(D zT1P&=eDgSDY(6~$aV;MZvL30dsqs#E`wZfgtqrvLGY5(6_HPr+rqiQ$yj0WHN+hz3 z^Xn(&E5e#x#LY{Smqb;BMpd}w6u8xdRBu5LO(!pzXTROpbo`?RwOS$2D=2QEZDdK}{NVD%E`g>U)bX&{`@RoezHw1E z%9E4@IHqFE@UKVNQMm@ut}3!;mqR3)ASSXJh)fHoKNdqT>=3~U=*ttnWqFuwW$PR? zmGnMgL8P;8PDaK6LBfzeEZUTD8}uhp($ad>8R!ygzJgytM_zXa9bASf;3tz1W&UsTL65&ws*{SKX;LlA&{cTkdxv{^gK6Y)BuWz*NZCW7^&L&GJ z6j3Tep8wG7+Ivm24+DbBo98w!_#R?ZV_!XovsCf$h7(W34v@CI=-%a3R;OHrrIi z7t9u4$-(P4lB4i1P6W$0^jYC>-$g4goVH~1d$1X3&ko*Bk|nvNWR(0r(h}WBS%pUWN_W;fpx`|efpyl78_oIb1s1IVcE!rpm4p-1Yw1T{+sfgr`VBrK8jE;20MofabZtP!< zi=LH7ir&~pP8VNR$YE(;siKtYg% z;=yb1$O+$pV{%0pNs%K0z|JFdc$` z=+6yly4z`l`A3_s)dFj?b#_47UV#{|Ug1%%AO`f9xh~{ylh^K1*X*&wMRdYNLk*+a zJUz}H^BZp6dM_wwa@a1HuwCTkGwvnhKJ?x2{J1a#hZ+Q#(#w|#cpsu^g!8PPOi>bY zs}jagdVrz)dn++JQc*T0m@O?sD)?#hx5?ft?JcMxM86)JHnUGtq5uOY>qRduOUXb| zls49!u9MZCUFDv8Z5!z17ydQvu!oA7<35<+XAtS!@1&u(k{+twcE|R*osJcxVLzJnaaI|?Ge9r98 z$Fw4#Rpdcnc`_w(vpQ)Chuc#?_6o#s%-+>7vxK^SHXTW|ZzE}W2JyrX)KDvO1tNs1 zwz85b!J=dcEiTSy&Yyq4`RcLU8^;!$lMmO)ned06m>F5*#^V`0s1y=G?UUld?l+pc zn8cFbnvX*Xd?I23s|XM6IrK&Gvv0mWFKTGE)w|E>U#AS4j!ORk(=rEhpVQl!YsM$e z3u=AE^XACEOAfjA66QvuHaqs|pS>w%sG)9dJC;ce&ZzI3L3#CF!i$*I2utFSuejCs zK9YvthC^~{#}0T5%d)Z1Zh@681y@*!AKcoO7%INHFzPBnbY*Qp4TMp^Z#MZpOdH9- z*A7EpV^+y@$Y3zWfTvRtW+CvbTxg}ArPnH#kf=Eo-eVD!-{&gU4pOQLVtl%GKwN%S4vIfG1fg5* zYj%Z!jaRD}Tj7kdcAOwu#=y2@g_DM&-omwGB58%Blbx7OIql`i$s12^ZM+XYAr<0s zm#A`@T4vF&@5?7mBP>)OgtsN8WUP7IUe^Hy6a%)U}dyh>!|9^4Ybk|^6^0WQ1dGr6%-kHEfb)IV+#U*Bu zn)F6*RHo6i-rQKRF>y(dNfVRQ=0@74HyRg+Nzo>vqoIbK!6X%}Ra&hQH^_3Eq@jq! zDxkn%G#aBoEGpu{fG9*3*<_i4nRB1#8-zJ$4gKWTp1!@|M!o`Pu*XVG(#c%9s1YXP;6DPMg%k857>vj9y+iDpx z&wvVg6A-5{olfHMa+9&5r4EMAI+V~IhEUO~(4Wc3&oE--l-v_+zZ$^!7-qdCJ^{XN ztsX)1e=9&Zdmj;N3%EY~`c8|Qr`g-kKtF|WrBFY_K#^7&!YPAcb|R;fZQCGkEu8bh zq<=uyb^v0XeMJagGtoUGH!dpf-R}qgorfH?7yJ=E#5mZ#wTud`sU27&{CnM&ItaN4 zQ^OKd&GZ<6Q0EoGFuJ6qA1kgS|2TNX7Y$G%H9R6b8t~nRq4Xl$-?OI9)9FRMzPG;o zGDT-WaMGj&B4BAh(OGSbGo^3GY1^8t|8;zRgpZzXg#g0#806hyA6C9=^m@O3OS^xA z?xL0tbmkvjDrlbU;le^?HX{Kl0X6*~C`uw8k=jh9e<8f_?pc zW9j4~_aVzm=ukMgq-ysXMbD9cG`&;5W%=9?Mlvxd3LZh|E2J=r$zJgdpE=LzWhd+V zFx-P-9O0`{Lsn6CCS0NwaL;*!efefqbGRXR{ARf+UGV^UlG2C$N*{(puBa3#Uu#l# z?P8S2CHU*C@R|;hw@P{WKjuJSqT7YOspOpqiEE?tyM{Qcn#?%G(ejU`_v_oXz>ULD zumlL&GUynDcdH!nFBL~Nj&s_?#b`i>mAGSuA`=lPF+iBmo)HQslVWMcOCOtQKuqvk zhocab^Cx-96i5I5U8m2%75(A7=U%hC_qzK^6wh1s(X|qBHU6&WGFRVs_5H5rj%z0y zxQ4ziSDs6c8?F^x;j%z<-FCO#{1YFTDn3&caUt^6sn#96SL$^Hb!p`@fFH+Nbm3B|pWp^_6|_ukzOqQW^=dIjoI->CX^$?0YH*g;wB zIVU|~k-+F6y$|JVeB1d^{y{kpXD6i=g#jB4ZG@+%CqifKt{WH733YJ>a`FF7E2+u| zV1#Vi?m&Cs%M0qa>~Nctb}?S@rJ$f7K(0}=N+^DT#0UuqN!zhwT_;V(P5n9zc1)Ta zNUChg087j%qmjGzrmsL=`3cA?voep*QsZZ+f=<-9B+lq3+wAEl#VV+hp5tBAXduN= zYLpV2j2&spFHftvJPo0Bnp;7`xG~HT5(#pj19=6(c_leTRXO-)d9wNA1jiNuolNCd?3y)v{H1vOZ#pt=)ImFH1w9bpNT(q;C#^z1*=Ev_ej!AIP}u*hBrG|nGjeDYR>8omt?nr!Wp}tIpI0n;i2o^do5M za-^hks7i(Zrd5RmLjcazRQMA<@D51SGAu*H^!<@WNJDPWt#>xD{D(4WjHDFKoi48KZ60 zZOoa+r<9eFvNyn4k?{ljV#;wZz2d4>iaZNUku@5vm5Fu)cz`N>2&OuSDssAtJ#J>} zqrr>pl6SaKeQnQ>5u?d(=FcyOG>K<#rG$p=6`yDGQR$nb5QqPhS}W?^{(8m5POc%Z zRd8xPmKtr!3QJ7b!QhC4!J%=%=}o5=K>crl+UpM#0ekciI09Or+ev#W$j;160VtB> zI2I*Z<*G>{oa6q%!bZfQywnpxQG&uI3kKUYGhNCZi6|Dzg}|wSxa9XqNl90C2X4?{ zDp)AIgAHEh_q@!1&olqM#uQ%@`XLZ`l#R_Px-bVSfKw3b7|uPAC760Lv4wa!j*pkpd zn1)b<(FdGdcTe(?(+g8GRk=11s_ztKHvgUiJ^_xEi9OC|eT zB980<_XS}A2Q#5dqt0jWs?S7vKDrmhfDig-rm1W*7LfX3JuherD>DNy6H{2GRqgg{ z%#cY$1l}G2_ukkqm!6&6e5OHJw^vi)UlVvD7VTWEyHf^y`|sv7zXkHj*`n&R(-LkZ zh(_vd%oQ^V2{UCLeN@-8&C=?*++7T+PSbjJ~sqkR!Fi+1h zcduIE7H!Md(cp%)fju=QwEb*}*4W3KngkQAa}=6Og?C5tQz#atvHQlJftZYjDO2!} z<;yxPY)C zkS75Wi7jp6$yR-K4jS)9!4xr9CX1AKQ!#DA1Ftm^WklY@vR5`ixENJdRk%Z>#G-bP z6T(tR6|HcRhc2il%n-ei#F9k|7fuF!M02nX>O393B+SKfCeLyPc`_x&o%n`)dKZ#t zw*CX82>9h0aC36$aCx;E1}fsf^=pYOOtUnd)`Ni(7!=e%&IaB4nH89tDbPPf0p%eI zM=gx&A)tdAaIvw|nEtFW4bs#N5)$WE5}ID2lD37nh%YsQHb%kblGf@}kq3|=IRck~j+2EQ`j&7Y}Y@DNbOppA9whno0lUeif_{}tX zCO5sB{5rV4ca54hZ1`{s!B`-EjlX>#=VWiF-6`qyY)(6ft#u@KZjoh2HZlOk@|JJQ zTLf`s{qEvF8MlDtZ`MT`P?*z_mO%nRvc5>n_+oR$q0L*gdMg+FggCa5YPM$08o`+X z>}2Tj5E zxRnfqN8GnPJw1J9k`?v-8iG=|Jdd6pbz!;>xR3<8L{KJ6dJMXs6_q~3jSLix<*3H8 z;%V>q{<3!C?55A3_PG-nm;I#d^ag+@@%XJFSf>p1#^}FQU>YZ!{oP%P=G0r+sisbW zr7!hF+UOA>o`~MkMN}O78)HAhVuC|rfKFKmeh{h9x{SI5B&mRnQpMw@><5n8!&>Z- zMTQWYUDp0*GWI|8?CiS{5QZ2ceH7L$7EU7&$1d7^@kfdZ8m(XTz|)0E;Hekwnz zB}SiyXNJG>NkF#7W5G*S0E@sV7(oaETZ<$khAiz$PY(sZh?@OS@R8V`7Giki&JaO2 zSjt(?t$Fm)jHKrYbIA*;X!Ru3L38|p;*GALo2}_EPCafLK1ssxie4L)g!;zdgtC*sf{8Xf)yRYaNRfO7+f$E8bmq zw7ttisHk!Kj}9I}%ZDa%0K`a5mIAyQ-oW+|ko-47Bz=O)Zg(U0v~TU}$lfcs8uo)x zqBZylMT4=vzw-on3)S3bJ-Dtv8y=U7ZRA+U2pe*>v!&)KMSC9A!tH^;G#&vOgBF2M z29Sb*P-{etk4qG?S*%v*CJ$S=#V za|9=T#0VQNWq0Lzf75z-q=dD=@m9|QPoHXxYQ=D$*ao=Pz0JVsaxY7I1S`Q>vxMN85~tY98cYrSChcrF-S-W`g29u{;Y(0^`VUq zWA1`#IutzXK~y1al87@BC}7A5#e|iG2;(4t3O;2U_t>`>bGQgTB=e4z!g3RvR2i;B5j2;95^I5Y08cDf9=2)e z|Gqp9%Q7lt-GtC}{w=@v4TB$$SgMNb@ya1 z$ULzCP9qPX3orC4D!!wr7<97!%VM-`C0qp!%;3~UB3>{0l?WH|;C>o#(5Eek*L`w| z8z48v76h!Cvk5o0V$wfKHmDq|HsXl*I(VR zJE7gk)EBf1?+>|g?c+(87BH&);z$M_Zmb&~I!#yqBi*L~G>&~9V0+JqSGN~8{ivA0 z6!@Wu3fxwibzxT41)x7m1x^r23vL~IySsd?p&zSQ0_p!TcL+N!;qF}HB#|J5zuq`& zEqfprjHxq|1Uck6p9{~0MAO+6eV=FXfuXwdlO`kHxa5<F&sGjCjczM!hp zGzC|$0cX7G}|M4p8WI@1Pj z9a`Kb>qCk6I4p5GZdnAqIb-7$t}`WYb8%0=QPUb7oRn;Le%7 z5L!;u5Ld-+h|pFH1bY=bL1{o%<({lcS`usU{J~!lf0I0mvASVT`#fkj8U~Xev~sPf z!ID0coG*_bti)D~12l|p|6NS5v<~SqkUMt%kbZ6)D)iAQM(wFPFw_(W6yb0@e69P>1jGxV;fMVj9_Gp2GEOCC-XlGahCoATu1pBfm@rTY zC9K)ym+XJ(g5M?Xp+ctVYWwMGNif|}C>*?3CU@j@dPvbF^wEWZO$7Upum&jj)OTuH z$t!9j-`Qqtbf6I z!Mnd=|0G+7xx(~aDh0VkUA`Z5Az~EWMfUOfYX}ruVC62Q+uWX^!UdQPN7J-DM(%g$@GRR-k@;Akyu8=aBWU6!?&G&fk;K2yKZQ(^&ieYt z<*{JKko-*lR49@dp}blXvkfdrYA|h)uL=}B#WXS`%J1TOzl&tG=yqTHKsZ?#+(28P zl3}eVGl3?W(+DJI5W|9MqDJWFTJH3UeMf{u2}-}aPqF**xo_u{H<-K?8JQHfD=;w> zPcYyD_z&Z!PMbHtDQ)n@Wqii002$=3GeF|C!X5!y66kvQ(`6c5M@`!zHzdogeA~=} ze-RqB;qV2XoxtsJipC)SX!s+jGrR!=CFomdkY+f@$oFbmYg*RSIK7YnrpzgbJTO0^ zUvp(^yz}~fuf7eul2{XBbY?3mQvPx90C0ckbwHFzK5~E4N6P;&kAh$ap$@#{zE$}N z65~DIC@+U+242fYwNxn4mkigb-{b#eh*P&XoxJ|&Wpq6HHKLQi7o8tXwH19667@nf zvCC^w@!%VNdchQ$9v7a@YzyKKg{dO}y@+{AZZp*0=8ufJe{fo3rXQdWFz+tYq+d!a zT|?lBo<2Y#h3FS&h*>wt74T*_PB12IZ~utw{%uT=grrEM=QF&E-YjMjSm(SbBSWS& znA(u}`pdGic?C<6bO)(w5BWyDRBcadmUuW?;KFy_2(*AWZ5%h>N^J|1mkX%@vnjxbmb+zA z_wXpDbZ;b`pD_d`rUw@38Q~@May~G` zyitb~!BO(rLx0zL>CRn0bhbm5rk^Y;{HSeuiY@uC`_I}lq8ZlS*Pi(JfvFB(E#Og7 zjUolAVi$A$M;Ar%Hv3f<>Y@9D#n+l8^1m2KW2-m)N6ZcQDT3v^{Jg!r&lDCOIs*KF zcGU`~aqY-3>7&OJ0Rj3z&b#2(U$;BA zo85c6>v-CoJRO7&TkMnc3jle^$n~^!9kyN1H&kOzHx%k)i z-7z7f5UC51RkD^gI5ixLT7~pd`%<-*n)j#>YQ$5PHjuGE$Srdxo?X1}4ivzDr@I5`Lg9OM&i z>oeWr|Ck*?s#HXfQaGa-KAcvh1N|ev>>o*!p$ti)#tm@f&zI{ZzGifZ2 zx20A|?$Hcz&$K_AVEk~AD8(?3`RfHs3G)s@qSnY2L~j zQbRYVnmB){mDj2gqtU!2*HbOT~!Jw*&_V10uH_9+PMD zQnS<3pssv-TKYS&O*+dx{-meHD=z6>B z4Iehl$u(rP%4;+l+LHxKzn~kWWlT-|80HoQ(}3B+#bTw07!|-{?r@W_POx;PS;4B2 zL1qwTe(2ixD5P{Wp|ERE*qYanTs7V&(oAUrX6zWxVZ+=&Ydm@C6y#lBi&V44k@G^a zl+VP8ZqUhW-?{VZ?qH~!BjE*iV60~@^MuA15*m?1dNQbgHNOM+ER(s9oxd%~ByEya1~BlrC5+JwTY~uZGgn#bv%W(#5}-I}*y$GeK9Qdl<^YeOwSW zG6h1s6$%uxX6VQ0tQxB^HU+%LFhv3^7O-KR%H}Gxzn<<%NI_;h}j&GE2BlWgX0d(qdcF=pn~YcKM~0mP>#qKpJ0Q z;egK#26JI^3*p}Lf=aARB3k^D3siqapQKq^PVnI}k_7tg-nIw%Egb6hDk_{3D9hJ- z3OW;3>+^~kII(P7Wqj>hqcTqK$vk~S@j4d&Xj=m9Moo1)^Mw>SVqBCsm%Nv41Q{_; z=e1K>lm|6q88bPmZKCX8U5}YB7(%4gHZV+(p*uhf4~~J|=ChXu4RYJQXHR%r%Mwqp zmj-?A%p{2D=GzqD6EqfkyRLDSJZQqKnKxwlX`R6W!_up&?D!y9m#{Lw+RtA>;1|C{K`1SQw7dc zPP!yPr+g_TgtBr75y@03oyf?BYJ8aq?gnL)d#vV4iim3lKtc{AMMBd*KHQ4*FC^UT z*+#}_XSJCNlwv^NdJeo4$Ajz=yKvDW^mPwQ29n=kUY<^b%&gO5MkXakS-uKtH^=MSM9@Fx0qETx75`2`(t{gWPABIg&!zuMt{M5{J#s zF4}^77aDR@_EykEIHnq)DP3iMce^Y6W9q4vWuM?&WBZTvGW5DMdqU=Z9QL!2bNg2U zvP?OC7IfFk=eBT8o)4Z(FgDCczD0g*4R>yNTP8JdNy2PRwP%f%vvFhQgh9`44=1qI2@*H2nw4PPK9cEPW^LiF*?1k04@S?Ys4nMq+=M)oU?; zFbfwhjHESd^@O4je4N~r5^LdcD^41X(q71J2`Vy^1P~XpGVbjURvsRKAS0p}C~D_4 zGI43ev1cco-Ea4Vv3W~=LebxS>ra9wgKSTyu%q+9GvlB4hgmgP?HU_MY(NoOh!i6C zC}qZIcGyZ14^WqRpfa&RllsK|gfZC4o#BZSCukC;bT;w$$JFtMPKz|U6LayV=jC^Z zd}+nbV4z)>L+8^!+|CH=Xsr6RjbXzF%_*pRyc%m{o$i@)pB(WHZ>qw|`*1*I<0B&i zlb=uAx^=kUM;sv{xHRTc1mfereqVWRMO2G47P8yHdvkLKdVFsX7V3Qva&=nmZ@4TJkv3PgGqXVRY=#a*xU>o>t7bDq` zmp$cST8##Gh106h{}R#nhz#w6A8`Q3EEXVdi_&m~=s_CJskCm`xC?!XuA89eM24o#&#&ti}nAEEYvQ7^CGayHT455X#`FQy)g&<59~wkrQA& z!zhV_duUB57ZANg4nwAko881o0P756I20Ju-BSdnjQ1=6vz|bDe?wt z)|6d=eOx+|E+SS*kDwuwkZ=nuetjKyefkl~k;q%rtiZU8nO*$kyv-fspO{4qcQ_Qh z1F~^sOU^vR$lCtAnqTv3re&85hk2X(|2Aof0h6a(x=FrWW1+^(;yt9W#~XE58k*^u>!7n9mc5Mk;a6HOL~VKPK`KB%Fw2~@@zu$ zp3SEh0BgF)|5ywpMG?S@*(7UZf%h3YWpN=8sUHD%(|le&!|UF(ZAdzXbW2_kS~3x9 z!wv%N_e($`ytQy?at#B@+Xt1&21SIj;V#8k(s3?Z1z&#$xMEo9TpEgZ-$49~bm!V5 zvR)~_MT_R8hQK~jK%n}oD*RFwsHbxd-nvM=IQHN6uxLYX z;eO z%Ne^t7g${XkTa#82b~V}ZNChSf;X#w&6ow5Omcghvs#K0_`QYN3 zM=v?pz7;r{_@^+qD;~&`uG!m3J9o|Aa(|ejcevEq zPRIT0ub))72^D?&yFYt7>AJ3M>ngc}Ub#ka?b{UHMfTA(^1DXX){-1WJ7*fr3QN?%Zy6@9nPRVR!P`jrv};eYpOko~roO zwDxXlUoJMNkq_9LtTm53@<bl`mJS-kwnnrNF>IsT|k<-}I8@Lz!BxYWdJbEzCNub`rG; zQKdtu)zTZSb5u|ee9Ddb!xR$_U6fYB^mh1XISP<`%4pOBS1T;-^HT~QGmh=yEklu?X=f&HkcAKfOBELjPH-o?( ze}Ik;g+LV2Pu&9fNW?zE2YSX+I1u1?HY)$c<#mN>m*-&CM70DOWkTJ5Ce-~@bNQ$0 zXXzO~p!5?b{D4#ye!#SOMUl;CeIw4@wTwB6Cr+G5g#_XhNA(t&#pa@79SfvZNxiaF zsRP0$COyIYUwbNdLk?z0XF4#zEXx^(8pXVnUw!q}IG@sSunzfrr3xQ7>2PY*g3eY) zTKqB5S};<~;z%q{6IOV5I2aaQjpKC<ys@tp+p@Fdf53HLbCxw_{D4 zl1=xF38xtpImw=iG#aX5&*aap8$Te@s6TQr;t0}F7A!7gpm0rfH4@`x9y^_pb6P+{ z)Jh%I!y@Jcs4*8r46w9;f({9pIOi4v8TxZ$v&y03##a}8wc4B|5>c}ncJ&l-;H1K} z=Nq7|Vo>vtkT0H#|7Wx1hTVE+6MOjCe8EXYrtP29GPb*Gr~o8%9ddri>)o>L837X~ zG6vXe`0e=3kpv4LIM9!RK>&+hL<8RRfn4POCL)wO5CVwo?syLZLV$e<0%wSqvi9tGG$C&pL@}>y z%H8_tge&h66K_vekh2|nx!EHJpzWufSb74o_ca==6=&Zm|O5fey9FhwcVV3#lEGka#sm(WdhEtIbTSHYeX&@UReD;btR zEC)QuU+6gQk8}^(z}BZ02)G0fGQ2aH=JSsX6a3b;{;k~3kv%O$eW+= zuvhZS3aGsB!ZD`{3n$4gCYBDlgXuD2B1A@#XXHPcnNQ`J=4;+T7d!`@={D`XT-#+LRLj%@ZbEV^T{1*;gKE=CB?q(EazSV&Q$TQ<33PyT@rU0uCt#8~ zCqNZ;a7euZ)yW8591LaVsbtGNwW{cewYK39*->jmx>zdx!kHhGI?A3mjy`@E=b9Wq z4g|M2KH_c~2exH4!?^SdP4f~>GgG&I=$qg-`fj-Kj232hM&@6=i31Unh*IiE!G`k7 zCB^RAT6YJ^fk;eEepO|oS@i(XIt$kSD%zth+k=>W87Dx?M9<1Ezj1hg0a>jh&K!(9 zL(Nx$Ph?oijELr7eKSxOl@6?hWj!yb#L6U>Ai1DY^;b4yLIY*U*;G8c&nY+?ls8#f zw^vi)s+5DCJ%!W=<{zk~eD<+|rBvb+Ri7=Y##Ds-6Tn#P5u^?B{E4V3ifG88_<3MN zF_;vbcB%Q!1U_CQfJa{WV-8;u4N=sVV~oi3)2sbzOQO}QUA2&bA*+@edA1-4 zvg*6v{@~*LsIvLFkV!KSJQAIF3CIj%07xZEJz<5^61_2ln;593owE^|-x}pzQdPJE zV(omS3}|3D!JGm)4%Sksz_?mRnKL6@gY}`@IJix@u#3UqDb4G5XjE?Yu z@be=zCdkXf#K!K=8q=RC{jLjT+VQ4W5}Jtq5Vwdg2MJKo6*hv%GA<#n0#Rxfj-;d| zfbL*9L+ca)hh1KjffT$1D?2wq%M>YPDr&yuCpwXh9f1zgPv-3?gxS;lYI4)7M7AzD zx4%o6K;@Fy@H5z`Hxq#{KX;3X=mBW{eFe?snYb~T6s&U%FYE-QJi#&uDos>zV#XJV z8HYA!95OYOb6Zxz5F7y|!nT{CLloc79Rg;P_56S4g&dd@e0JxI(U%}2#Dg0k_z?Fe z)Zd@bvNB=D0)>`z`a5zTi^Zdf3C}0uRs`_~K|+bgD_HN%&CLcBZa@gL;9%zx2^7I0 zX6M#_Ix6B*bU#*lFRB@vj%qANW1*1!`TZLY1yJL=47oNk&OeiN-}dzM^qEP~T&H9c z#UnNn!THZlP&B6p96HsM{Z?z#g4F~L)E&^Z9YFRCGt*K8hr|S@0Th8{BH0W`o~_Hk zN6*%i2dy~nsVP-8H6k-SRmB$4IiAVb|IGj7?++M+3@ha1k#EFlWDC^yjt~V$GD#?+ zUs{JEU2VOm2h27SQm7)J;nE{(Yq!Ithc#o9lDcc@@@s0ln{iaOR diff --git a/crates/analysis/src/lib.rs b/crates/analysis/src/lib.rs deleted file mode 100644 index 7f596c022..000000000 --- a/crates/analysis/src/lib.rs +++ /dev/null @@ -1,182 +0,0 @@ -use std::{collections::BTreeMap, fs::File, io::BufReader}; - -use anyhow::Result; -use ethers::types::U256; -use reader::SimulationData; -use serde_json::{from_reader, Value}; -use tracing::{debug, info}; - -#[allow(unused)] -pub mod reader; -#[cfg(test)] -mod tests; -pub mod unpacker; -#[allow(unused)] -pub mod visualize; - -pub fn wad_to_float(wad: U256) -> f64 { - wad.as_u128() as f64 / 10f64.powi(18) -} - -#[cfg(feature = "dca")] -pub fn plot_dca_weights(data_set: &[SimulationData], name: &str) { - let mut weights_statistical = (vec![], vec![]); - let mut reserves_statistical = (vec![], vec![]); - let mut prices_statistical = (vec![], vec![]); - let mut portfolio_value_statistical = (vec![], vec![]); - let mut swapper_reserves_statistical = (vec![], vec![]); - let mut swapper_portfolio_value_statistical = (vec![], vec![]); - - for (idx, data) in data_set.iter().enumerate() { - // Get the weights and indices for the plots - let weight_filter = - data.get_vectorized_events::("rmm"); - let indices: Vec = weight_filter - .iter() - .enumerate() - .map(|(index, _)| index as f64) - .collect(); - if idx == 0 { - weights_statistical.0 = indices.clone(); - } - weights_statistical.1.push( - weight_filter - .iter() - .map(|event| wad_to_float(event.weight_x)) - .collect::>(), - ); - - // Get the reserves - let reserves = data.get_vectorized_events::("rmm"); - if idx == 0 { - reserves_statistical.0 = indices.clone(); - } - reserves_statistical.1.push( - reserves - .iter() - .map(|event| wad_to_float(event.reserve_x)) - .collect::>(), - ); - - // Get the prices - let swap_filter = data.get_vectorized_events::("rmm"); - if idx == 0 { - prices_statistical.0 = indices.clone(); - } - prices_statistical.1.push( - swap_filter - .iter() - .map(|event| wad_to_float(event.spot_price)) - .collect::>(), - ); - - // Get the portfolio values - let portfolio_value = reserves - .iter() - .zip(swap_filter) - .map(|(event, price_event)| { - let reserve_x = wad_to_float(event.reserve_x); - let reserve_y = wad_to_float(event.reserve_y); - let price = wad_to_float(price_event.spot_price); - reserve_x * price + reserve_y - }); - if idx == 0 { - portfolio_value_statistical.0 = indices.clone(); - } - portfolio_value_statistical - .1 - .push(portfolio_value.collect::>()); - - // Get the swapper's reserves - let swapper_portfolio = data - .get_vectorized_events::("portfolio_tracker"); - if idx == 0 { - swapper_reserves_statistical.0 = indices.clone(); - } - swapper_reserves_statistical.1.push( - swapper_portfolio - .iter() - .map(|event| wad_to_float(event.token_x_balance)) - .collect::>(), - ); - - // Get the swapper's portfolio - let price_change_filter = - data.get_vectorized_events::("lex"); - - let swapper_portfolio_value_plot = swapper_portfolio - .iter() - .zip(price_change_filter) - .map(|(event, price_change_event)| { - let x_balance = wad_to_float(event.token_x_balance); - let y_balance = wad_to_float(event.token_y_balance); - let price = wad_to_float(price_change_event.price); - x_balance * price + y_balance - }) - .collect::>(); - if idx == 0 { - swapper_portfolio_value_statistical.0 = indices.clone(); - } - swapper_portfolio_value_statistical - .1 - .push(swapper_portfolio_value_plot); - } - // Create the figure - let mut figure = Figure::new(name, Some((2000, 2000))); - - // Plot the prices - let plot_settings = PlotSettings::new().title("Prices").labels("Index", "Price"); - let prices_plot = - StatisticalPlot::new(prices_statistical.0, prices_statistical.1).settings(plot_settings); - figure.add_plot(prices_plot); - - // Plot the weights - let plot_settings = PlotSettings::new() - .title("LP DCA Weights") - .labels("Index", "Weight X"); - - let weights_plot = - StatisticalPlot::new(weights_statistical.0, weights_statistical.1).settings(plot_settings); - figure.add_plot(weights_plot); - - // Plot the reserves - let plot_settings = PlotSettings::new() - .title("LP Reserves") - .labels("Index", "Reserve X"); - let reserves_plot = StatisticalPlot::new(reserves_statistical.0, reserves_statistical.1) - .settings(plot_settings); - figure.add_plot(reserves_plot); - - // Plot the portfolio value - let plot_settings = PlotSettings::new() - .title("LP Portfolio Value") - .labels("Index", "Portfolio Value"); - let portfolio_value_plot = - StatisticalPlot::new(portfolio_value_statistical.0, portfolio_value_statistical.1) - .settings(plot_settings); - figure.add_plot(portfolio_value_plot); - - // Plot the swapper reserves - let plot_settings = PlotSettings::new() - .title("Swapper Reserves") - .labels("Index", "Swapper Reserve X"); - let swapper_reserves_plot = StatisticalPlot::new( - swapper_reserves_statistical.0, - swapper_reserves_statistical.1, - ) - .settings(plot_settings); - figure.add_plot(swapper_reserves_plot); - - // Plot the swapper portfolio value - let plot_settings = PlotSettings::new() - .title("Swapper Portfolio Value") - .labels("Index", "Swapper Portfolio Value"); - let swapper_portfolio_value_plot = StatisticalPlot::new( - swapper_portfolio_value_statistical.0, - swapper_portfolio_value_statistical.1, - ) - .settings(plot_settings); - figure.add_plot(swapper_portfolio_value_plot); - - figure.create().unwrap(); -} diff --git a/crates/analysis/src/reader.rs b/crates/analysis/src/reader.rs deleted file mode 100644 index 0134702b7..000000000 --- a/crates/analysis/src/reader.rs +++ /dev/null @@ -1,120 +0,0 @@ -use std::{env, path::PathBuf}; - -use dfmm::settings::{parameters::Single, SimulationConfig}; -use serde::{de::DeserializeOwned, Deserialize, Serialize}; - -use super::*; - -#[derive(Clone, Serialize, Deserialize, Debug)] -pub struct SimulationData { - #[serde(rename = "events")] - pub contract_events: BTreeMap>>, - #[serde(rename = "metadata")] - pub metadata: Option>, -} - -impl SimulationData { - pub fn new(file_name: &str) -> Result { - let current_dir = env::current_dir().unwrap_or_else(|_| PathBuf::from("")); - let abs_path = current_dir.join(file_name); - - let file = File::open(file_name) - .unwrap_or_else(|_| panic!("Failed to open file at: {:?}", abs_path.display())); - - let reader = BufReader::new(file); - let data: SimulationData = from_reader(reader)?; - Ok(data) - } - - pub fn get_events(&self, contract_name: &str, event_name: &str) -> Option<&Vec> { - self.contract_events - .get(contract_name) - .and_then(|events| events.get(event_name)) - } - - pub fn get_vectorized_events_from_str( - &self, - contract_name: &str, - event_name: &str, - ) -> BTreeMap> { - let event = self.get_events(contract_name, event_name).unwrap(); - let mut vectorized_events: BTreeMap> = BTreeMap::new(); - - // Assuming event is a Map - for map in event.iter().map(|x| x.as_object().unwrap()) { - for (key, value) in map { - vectorized_events - .entry(key.clone()) - .or_default() - .push(value.clone()); - } - } - - vectorized_events - } - - pub fn get_vectorized_events(&self, contract_name: &str) -> Vec - where - T: DeserializeOwned, - { - let mut results = Vec::new(); - - // Get the map of events for the given contract name - if let Some(events_map) = self.contract_events.get(contract_name) { - for (_, event_values) in events_map.iter() { - // For each event value, attempt to deserialize it into type T - for value in event_values.iter() { - if let Ok(deserialized_value) = serde_json::from_value::(value.clone()) { - results.push(deserialized_value); - } - } - } - } - results - } -} - -#[cfg(test)] -mod tests { - - use super::*; - - const FILE_NAME: &str = "src/tests/output/0.json"; - - #[test] - fn read_json_to_simulation_data() { - let simulation_data = SimulationData::new(FILE_NAME); - assert!(simulation_data.is_ok()); - } - - #[test] - fn retrieve_events() { - let simulation_data = SimulationData::new(FILE_NAME).unwrap(); - let events = simulation_data.get_events("rmm", "SwapFilter"); - assert!(events.is_some()); - let events = events.unwrap(); - assert_eq!(events.len(), 8); - } - - #[test] - #[cfg(feature = "rmm")] - fn retrieve_vectorized_event_structs() { - let simulation_data = SimulationData::new(FILE_NAME).unwrap(); - let values = simulation_data.get_vectorized_events::("rmm"); - assert_eq!(values.len(), 8); - } - - #[test] - fn retrieve_vectorized_event_structs_from_str() { - let simulation_data = SimulationData::new(FILE_NAME).unwrap(); - let values = simulation_data.get_vectorized_events_from_str("rmm", "SwapFilter"); - assert_eq!(values.get("sender").unwrap().len(), 8); - } - - #[test] - fn retrieve_metadata() { - let simulation_data = SimulationData::new(FILE_NAME).unwrap(); - let metadata = simulation_data.metadata.as_ref(); - assert!(metadata.is_some()); - } -} diff --git a/crates/analysis/src/tests/mod.rs b/crates/analysis/src/tests/mod.rs deleted file mode 100644 index f997f32e3..000000000 --- a/crates/analysis/src/tests/mod.rs +++ /dev/null @@ -1,217 +0,0 @@ -// use crate::visualize::statistical::plot_statistical; -use bindings::{atomic_v2, dfmm, lex}; -use plotters::coord::combinators::LogScalable; - -use super::*; -use crate::{ - reader::SimulationData, - visualize::{ - plots::{line::LinePlot, statistical::StatisticalPlot, PlotSettings}, - Figure, - }, -}; - -pub mod rmm_analysis; - -#[test] -fn read_in_and_plot_statistical() { - let file1 = "src/tests/output/0.json"; - let data1 = SimulationData::new(file1).unwrap(); - let values1 = data1.get_vectorized_events::("lex"); - - let file2 = "src/tests/output/1.json"; - let data2 = SimulationData::new(file2).unwrap(); - let values2 = data2.get_vectorized_events::("lex"); - - let (x_data, y_data1): (Vec, Vec) = values1 - .iter() - .enumerate() - .map(|(index, event)| (index as f64, wad_to_float(event.price))) - .unzip(); - - let y_data2 = values2 - .iter() - .map(|event| wad_to_float(event.price)) - .collect(); - - let y_data = vec![y_data1, y_data2]; - let statistical_plot = StatisticalPlot::new(x_data, y_data); - - let mut figure = Figure::new("test_read_in_and_plot_statistical", None); - figure.add_plot(statistical_plot); - figure.create().unwrap(); - assert!(std::path::Path::new("test_read_in_and_plot_statistical.png").exists()); - std::fs::remove_file("test_read_in_and_plot_statistical.png").unwrap(); -} - -#[test] -#[ignore] -#[cfg(feature = "dca")] -fn plot_dca_weights() { - let mut weights_statistical = (vec![], vec![]); - let mut reserves_statistical = (vec![], vec![]); - let mut prices_statistical = (vec![], vec![]); - let mut portfolio_value_statistical = (vec![], vec![]); - let mut swapper_reserves_statistical = (vec![], vec![]); - let mut swapper_portfolio_value_statistical = (vec![], vec![]); - - for idx in 0..10 { - // Chose the file and get the data - let file = format!("dca/static/{}.json", idx); - let data = SimulationData::new(&file).unwrap(); - - // Get the weights and indices for the plots - let weight_filter = data.get_vectorized_events::("g3m"); - let indices: Vec = weight_filter - .iter() - .enumerate() - .map(|(index, _)| index as f64) - .collect(); - if idx == 0 { - weights_statistical.0 = indices.clone(); - } - weights_statistical.1.push( - weight_filter - .iter() - .map(|event| wad_to_float(event.weight_x)) - .collect::>(), - ); - - // Get the reserves - let reserves = data.get_vectorized_events::("g3m"); - if idx == 0 { - reserves_statistical.0 = indices.clone(); - } - reserves_statistical.1.push( - reserves - .iter() - .map(|event| wad_to_float(event.reserve_x)) - .collect::>(), - ); - - // Get the prices - let swap_filter = data.get_vectorized_events::("g3m"); - if idx == 0 { - prices_statistical.0 = indices.clone(); - } - prices_statistical.1.push( - swap_filter - .iter() - .map(|event| wad_to_float(event.spot_price)) - .collect::>(), - ); - - // Get the portfolio values - let portfolio_value = reserves - .iter() - .zip(swap_filter) - .map(|(event, price_event)| { - let reserve_x = wad_to_float(event.reserve_x); - let reserve_y = wad_to_float(event.reserve_y); - let price = wad_to_float(price_event.spot_price); - reserve_x * price + reserve_y - }); - if idx == 0 { - portfolio_value_statistical.0 = indices.clone(); - } - portfolio_value_statistical - .1 - .push(portfolio_value.collect::>()); - - // Get the swapper's reserves - let swapper_portfolio = data - .get_vectorized_events::("portfolio_tracker"); - if idx == 0 { - swapper_reserves_statistical.0 = indices.clone(); - } - swapper_reserves_statistical.1.push( - swapper_portfolio - .iter() - .map(|event| wad_to_float(event.token_x_balance)) - .collect::>(), - ); - - // Get the swapper's portfolio - let price_change_filter = - data.get_vectorized_events::("lex"); - - let swapper_portfolio_value_plot = swapper_portfolio - .iter() - .zip(price_change_filter) - .map(|(event, price_change_event)| { - let x_balance = wad_to_float(event.token_x_balance); - let y_balance = wad_to_float(event.token_y_balance); - let price = wad_to_float(price_change_event.price); - // println!( - // "SWAPPER reserve_x: {}, reserve_y: {}, price: {}", - // x_balance, y_balance, price - // ); - x_balance * price + y_balance - }) - .collect::>(); - if idx == 0 { - swapper_portfolio_value_statistical.0 = indices.clone(); - } - swapper_portfolio_value_statistical - .1 - .push(swapper_portfolio_value_plot); - } - // Create the figure - let mut figure = Figure::new("plot_dca_weights", Some((2000, 2000))); - - // Plot the prices - let plot_settings = PlotSettings::new().title("Prices").labels("Index", "Price"); - let prices_plot = - StatisticalPlot::new(prices_statistical.0, prices_statistical.1).settings(plot_settings); - figure.add_plot(prices_plot); - - // Plot the weights - let plot_settings = PlotSettings::new() - .title("LP DCA Weights") - .labels("Index", "Weight X"); - - let weights_plot = - StatisticalPlot::new(weights_statistical.0, weights_statistical.1).settings(plot_settings); - figure.add_plot(weights_plot); - - // Plot the reserves - let plot_settings = PlotSettings::new() - .title("LP Reserves") - .labels("Index", "Reserve X"); - let reserves_plot = StatisticalPlot::new(reserves_statistical.0, reserves_statistical.1) - .settings(plot_settings); - figure.add_plot(reserves_plot); - - // Plot the portfolio value - let plot_settings = PlotSettings::new() - .title("LP Portfolio Value") - .labels("Index", "Portfolio Value"); - let portfolio_value_plot = - StatisticalPlot::new(portfolio_value_statistical.0, portfolio_value_statistical.1) - .settings(plot_settings); - figure.add_plot(portfolio_value_plot); - - // Plot the swapper reserves - let plot_settings = PlotSettings::new() - .title("Swapper Reserves") - .labels("Index", "Swapper Reserve X"); - let swapper_reserves_plot = StatisticalPlot::new( - swapper_reserves_statistical.0, - swapper_reserves_statistical.1, - ) - .settings(plot_settings); - figure.add_plot(swapper_reserves_plot); - - // Plot the swapper portfolio value - let plot_settings = PlotSettings::new() - .title("Swapper Portfolio Value") - .labels("Index", "Swapper Portfolio Value"); - let swapper_portfolio_value_plot = StatisticalPlot::new( - swapper_portfolio_value_statistical.0, - swapper_portfolio_value_statistical.1, - ) - .settings(plot_settings); - figure.add_plot(swapper_portfolio_value_plot); - - figure.create().unwrap(); -} diff --git a/crates/analysis/src/tests/rmm_analysis.rs b/crates/analysis/src/tests/rmm_analysis.rs deleted file mode 100644 index 16d8304cd..000000000 --- a/crates/analysis/src/tests/rmm_analysis.rs +++ /dev/null @@ -1,245 +0,0 @@ -use super::*; - -// #[test] -// pub fn read_single_simulation() { -// let file = "../../analysis/rmm/vol_targeting/static/0.json"; -// let data = SimulationData::new(file).unwrap(); -// let pool_stats = -// data.get_vectorized_events::("dfmm"); -// let lex_prices = -// data.get_vectorized_events::("lex"); -// let dex_prices = -// data.get_vectorized_events::("atomic_arbitrage"); - -// let dex_prices: (Vec, Vec) = dex_prices -// .iter() -// .map(|event| (event.timestamp.as_u64().as_f64(), -// wad_to_float(event.price))) .unzip(); - -// let lex_prices: (Vec, Vec) = lex_prices -// .iter() -// .map(|event| (event.timestamp.as_u64().as_f64(), -// wad_to_float(event.price))) .unzip(); - -// let timestamps = pool_stats -// .iter() -// .map(|event| event.timestamp.as_u64().as_f64()) -// .collect::>(); -// let mut rx = (timestamps.clone(), vec![]); -// let mut ry = (timestamps.clone(), vec![]); -// let mut invariant = (timestamps.clone(), vec![]); -// let mut strike = (timestamps.clone(), vec![]); -// let mut sigma = (timestamps.clone(), vec![]); -// let mut tau = (timestamps.clone(), vec![]); - -// rx.1.extend( -// pool_stats -// .iter() -// .map(|event| wad_to_float(event.rx)) -// .collect::>(), -// ); -// ry.1.extend( -// pool_stats -// .iter() -// .map(|event| wad_to_float(event.ry)) -// .collect::>(), -// ); -// invariant.1.extend( -// pool_stats -// .iter() -// .map(|event| event.invariant.as_i128() as f64) -// .collect::>(), -// ); -// strike.1.extend( -// pool_stats -// .iter() -// .map(|event| wad_to_float(event.strike)) -// .collect::>(), -// ); -// sigma.1.extend( -// pool_stats -// .iter() -// .map(|event| wad_to_float(event.sigma)) -// .collect::>(), -// ); -// tau.1.extend( -// pool_stats -// .iter() -// .map(|event| wad_to_float(event.tau)) -// .collect::>(), -// ); - -// let mut figure = Figure::new("backtest_1000_days", Some((2000, 2000))); - -// let plot_settings = PlotSettings::new() -// .title("Lex Prices") -// .labels("index", "price"); -// let lex_plot = LinePlot::new(lex_prices.0, -// lex_prices.1).settings(plot_settings); figure.add_plot(lex_plot); - -// let plot_settings = PlotSettings::new() -// .title("Dex Prices") -// .labels("index", "price"); -// let dex_plot = LinePlot::new(dex_prices.0, -// dex_prices.1).settings(plot_settings); figure.add_plot(dex_plot); - -// let plot_settings = PlotSettings::new() -// .title("Reserve X") -// .labels("timestamp", "rx"); -// let rx_plot = LinePlot::new(rx.0, rx.1).settings(plot_settings); -// figure.add_plot(rx_plot); - -// let plot_settings = PlotSettings::new() -// .title("Reserve Y") -// .labels("timestamp", "ry"); -// let ry_plot = LinePlot::new(ry.0, ry.1).settings(plot_settings); -// figure.add_plot(ry_plot); - -// let plot_settings = PlotSettings::new() -// .title("Invariant") -// .labels("timestamp", "invariant"); -// let invariant_plot = LinePlot::new(invariant.0, -// invariant.1).settings(plot_settings); figure.add_plot(invariant_plot); - -// let plot_settings = PlotSettings::new() -// .title("Strike") -// .labels("timestamp", "strike"); -// let strike_plot = LinePlot::new(strike.0, -// strike.1).settings(plot_settings); figure.add_plot(strike_plot); - -// let plot_settings = PlotSettings::new() -// .title("Sigma") -// .labels("timestamp", "sigma"); -// let sigma_plot = LinePlot::new(sigma.0, sigma.1).settings(plot_settings); -// figure.add_plot(sigma_plot); - -// let plot_settings = PlotSettings::new().title("Tau").labels("timestamp", -// "tau"); let tau_plot = LinePlot::new(tau.0, -// tau.1).settings(plot_settings); figure.add_plot(tau_plot); -// figure.create().unwrap(); -// } - -// use rayon::prelude::*; - -// #[test] -// fn read_multiple_simulation() { -// (0..4).into_par_iter().for_each(|idx| { -// let file = -// format!("../../analysis/rmm/vol_targeting/static/{idx}.json"); let -// data = SimulationData::new(file.as_str()).unwrap(); let pool_stats = -// data.get_vectorized_events::("dfmm"); let -// lex_prices = data.get_vectorized_events::("lex"); -// let dex_prices = -// data.get_vectorized_events::("atomic_arbitrage"); - -// let dex_prices: (Vec, Vec) = dex_prices -// .iter() -// .map(|event| (event.timestamp.as_u64().as_f64(), -// wad_to_float(event.price))) .unzip(); - -// let lex_prices: (Vec, Vec) = lex_prices -// .iter() -// .map(|event| (event.timestamp.as_u64().as_f64(), -// wad_to_float(event.price))) .unzip(); - -// let timestamps = pool_stats -// .iter() -// .map(|event| event.timestamp.as_u64().as_f64()) -// .collect::>(); -// let mut rx = (timestamps.clone(), vec![]); -// let mut ry = (timestamps.clone(), vec![]); -// let mut invariant = (timestamps.clone(), vec![]); -// let mut strike = (timestamps.clone(), vec![]); -// let mut sigma = (timestamps.clone(), vec![]); -// let mut tau = (timestamps.clone(), vec![]); - -// rx.1.extend( -// pool_stats -// .iter() -// .map(|event| wad_to_float(event.rx)) -// .collect::>(), -// ); -// ry.1.extend( -// pool_stats -// .iter() -// .map(|event| wad_to_float(event.ry)) -// .collect::>(), -// ); -// invariant.1.extend( -// pool_stats -// .iter() -// .map(|event| event.invariant.as_i128() as f64) -// .collect::>(), -// ); -// strike.1.extend( -// pool_stats -// .iter() -// .map(|event| wad_to_float(event.strike)) -// .collect::>(), -// ); -// sigma.1.extend( -// pool_stats -// .iter() -// .map(|event| wad_to_float(event.sigma)) -// .collect::>(), -// ); -// tau.1.extend( -// pool_stats -// .iter() -// .map(|event| wad_to_float(event.tau)) -// .collect::>(), -// ); - -// let mut figure = Figure::new(format!("plot_figs_{idx}").as_str(), -// Some((2000, 2000))); - -// let plot_settings = PlotSettings::new() -// .title("Lex Prices") -// .labels("index", "price"); -// let lex_plot = LinePlot::new(lex_prices.0, -// lex_prices.1).settings(plot_settings); figure.add_plot(lex_plot); - -// let plot_settings = PlotSettings::new() -// .title("Dex Prices") -// .labels("index", "price"); -// let dex_plot = LinePlot::new(dex_prices.0, -// dex_prices.1).settings(plot_settings); figure.add_plot(dex_plot); - -// let plot_settings = PlotSettings::new() -// .title("Reserve X") -// .labels("timestamp", "rx"); -// let rx_plot = LinePlot::new(rx.0, rx.1).settings(plot_settings); -// figure.add_plot(rx_plot); - -// let plot_settings = PlotSettings::new() -// .title("Reserve Y") -// .labels("timestamp", "ry"); -// let ry_plot = LinePlot::new(ry.0, ry.1).settings(plot_settings); -// figure.add_plot(ry_plot); - -// let plot_settings = PlotSettings::new() -// .title("Invariant") -// .labels("timestamp", "invariant"); -// let invariant_plot = LinePlot::new(invariant.0, -// invariant.1).settings(plot_settings); figure. -// add_plot(invariant_plot); - -// let plot_settings = PlotSettings::new() -// .title("Strike") -// .labels("timestamp", "strike"); -// let strike_plot = LinePlot::new(strike.0, -// strike.1).settings(plot_settings); figure.add_plot(strike_plot); - -// let plot_settings = PlotSettings::new() -// .title("Sigma") -// .labels("timestamp", "sigma"); -// let sigma_plot = LinePlot::new(sigma.0, -// sigma.1).settings(plot_settings); figure.add_plot(sigma_plot); - -// let plot_settings = -// PlotSettings::new().title("Tau").labels("timestamp", "tau"); let -// tau_plot = LinePlot::new(tau.0, tau.1).settings(plot_settings); -// figure.add_plot(tau_plot); -// figure.create().unwrap(); -// }); -// } diff --git a/crates/analysis/src/unpacker.rs b/crates/analysis/src/unpacker.rs deleted file mode 100644 index 33c09f11b..000000000 --- a/crates/analysis/src/unpacker.rs +++ /dev/null @@ -1,165 +0,0 @@ -use std::{collections::HashMap, env}; - -use dfmm::agents::{base::price_changer::PriceProcess, AgentParameters}; -use tokio::{fs, sync::mpsc, task}; - -use super::*; - -/// `BatchData` is a struct that holds the simulation data and any errors that -/// occurred during the simulation. -/// -/// # Fields -/// -/// * `data` - A vector of `SimulationData` that holds the data from the -/// simulation. -/// * `errors` - A `Value` that holds any errors that occurred during the -/// simulation. -pub struct BatchData { - pub data: Vec, - pub errors: Value, -} - -impl BatchData { - /// Creates a new `BatchData` instance by reading data from a specified - /// directory. - /// - /// This function performs the following steps: - /// 1. It gets the current working directory and appends the provided - /// directory path to it. - /// 2. It creates two unbounded channels, one for data and one for errors. - /// 3. It reads the directory and for each entry, it spawns a new task. - /// 4. Each task reads the file content. If the file is "errors.json", it - /// sends the content to the errors channel. Otherwise, it creates a new - /// `SimulationData` instance from the file and sends it to the data - /// channel. - /// 5. After reading all entries, it drops the senders of the channels. - /// 6. It collects all received data and errors into vectors. - /// 7. Finally, it returns a new `BatchData` instance containing the - /// collected data and errors. - /// - /// # Arguments - /// - /// * `dir` - A string slice that holds the name of the directory to read - /// the data from. - /// - /// # Returns - /// - /// * `Self` - A new `BatchData` instance containing the read data and - /// errors. - pub async fn new(dir: &str) -> Self { - let cwd = env::current_dir().unwrap(); - let path = cwd.join(dir); - info!("Reading `BatchData` from path: {:?}", path); - - let (data_sender, mut data_receiver) = mpsc::unbounded_channel(); - let (errors_sender, mut errors_receiver) = mpsc::unbounded_channel(); - - let mut handles = vec![]; - - if let Ok(mut entries) = fs::read_dir(path).await { - while let Some(entry) = entries.next_entry().await.unwrap() { - let data_sender = data_sender.clone(); - let errors_sender = errors_sender.clone(); - - handles.push(task::spawn(async move { - let path = entry.path(); - let file_name = path.file_name().unwrap().to_str().unwrap(); - if file_name == "errors.json" { - if let Ok(contents) = fs::read_to_string(&path).await { - if let Ok(json) = serde_json::from_str(&contents) { - errors_sender.send(json).unwrap(); - } - } - } else { - // TODO: Stream out K,V pairs - data_sender - .send(SimulationData::new(path.to_str().unwrap()).unwrap()) - .unwrap(); - debug!("Finished reading from file: {:?}", path); - } - })); - } - // Now there are no new entries, we can drop the sender - drop(data_sender); - drop(errors_sender); - } - let mut data = vec![]; - while let Some(data_recv) = data_receiver.recv().await { - data.push(data_recv); - } - - let errors = errors_receiver.recv().await.unwrap(); - - Self { data, errors } - } - - /// Organizes the simulation data into a HashMap based on the volatility of - /// the price process. - /// - /// This function iterates over the simulation data and groups them based on - /// the volatility of the price process in the agent parameters. The - /// volatility value is used as the key in the HashMap. Each key in the - /// HashMap corresponds to a vector of SimulationData that share the same - /// volatility. - /// - /// # Steps - /// 1. Initialize an empty HashMap. - /// 2. Iterate over the simulation data. - /// 3. For each data, extract the agent parameters from the metadata. - /// 4. If the agent parameters correspond to a PriceChanger, extract the - /// price process parameters. - /// 5. If the price process is a Geometric Brownian Motion (Gbm), use the - /// volatility as the key in the HashMap. - /// 6. If the key already exists in the HashMap, append the data to the - /// corresponding vector. - /// 7. If the key does not exist, insert a new entry in the HashMap with the - /// key and a new vector containing the data. - /// 8. Return the HashMap. - /// - /// # Returns - /// * `HashMap>` - A HashMap where each key is a - /// volatility value and each value is a vector of SimulationData. - pub fn organize_hard_coded(&self) -> HashMap> { - let mut map: HashMap> = HashMap::new(); - for data in self.data.iter() { - let metadata = data.metadata.as_ref().unwrap(); - let agent_parameters = metadata.agent_parameters.get("price_changer").unwrap(); - - if let AgentParameters::PriceChanger(params) = agent_parameters { - if let PriceProcess::Gbm(params) = params.process { - let key = params.volatility.0.to_string(); - if let Some(vec) = map.get_mut(&key) { - vec.push(data.clone()); - } else { - map.insert(key, vec![data.clone()]); - } - } - } - } - map - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[tracing_test::traced_test] - #[tokio::test(flavor = "multi_thread")] - async fn new() { - let batch = BatchData::new("src/tests/output").await; - assert_eq!(batch.data.len(), 2); - assert!(batch.errors.is_array()); - } - - #[ignore] - #[tokio::test(flavor = "multi_thread")] - #[cfg(feature = "dca")] - async fn organize() { - let batch = BatchData::new("dca/sweep").await; - let data = batch.organize_hard_coded(); - plot_dca_weights(data.get("0.8").unwrap(), "0.8"); - } -} - -// TODO: Break apart into different distinct configs diff --git a/crates/analysis/src/visualize/mod.rs b/crates/analysis/src/visualize/mod.rs deleted file mode 100644 index 2ceb3d771..000000000 --- a/crates/analysis/src/visualize/mod.rs +++ /dev/null @@ -1,92 +0,0 @@ -use plotters::{ - backend::BitMapBackend, - coord::{types::RangedCoordf64, Shift}, - prelude::*, -}; - -use self::plots::{statistical::StatisticalPlot, Plot}; -use super::*; - -pub mod plots; - -pub struct Figure { - pub file_name: String, - pub dimensions: Option<(u32, u32)>, - pub plots: Vec>, -} - -impl Figure { - pub fn new(name: &str, dimensions: Option<(u32, u32)>) -> Self { - Self { - file_name: format!("{}.png", name), - dimensions, - plots: Vec::new(), - } - } - - pub fn add_plot(&mut self, plot: P) -> &mut Self { - self.plots.push(Box::new(plot)); - self - } - - pub fn create(&self) -> Result<()> { - let dimensions = self.dimensions.unwrap_or((1920, 1080)); - let drawing_area = BitMapBackend::new(&self.file_name, dimensions).into_drawing_area(); - drawing_area.fill(&WHITE)?; - - // Partition the main drawing area into subplots - let num_plots = self.plots.len(); - if num_plots == 0 { - return Ok(()); // If there are no plots, just return. - } - - // Split the main drawing area into sub-areas - let sub_areas = drawing_area.split_evenly((num_plots, 1)); - - // Plot each plot on its respective drawing area - for (i, plot) in self.plots.iter().enumerate() { - plot.plot(&sub_areas[i])?; - } - - Ok(()) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - struct MockPlot {} - - impl Plot for MockPlot { - fn plot(&self, _drawing_area: &DrawingArea) -> Result<()> { - Ok(()) - } - } - - #[test] - fn new() { - let name = "test_name"; - let dimensions = Some((100, 200)); - let figure = Figure::new("test_name", Some((100, 200))); - assert_eq!(figure.file_name, format!("{}.png", name)); - assert_eq!(figure.dimensions, dimensions); - assert_eq!(figure.plots.len(), 0); - } - - #[test] - fn add_plot() { - let mut figure = Figure::new("test_add_plot", None); - let plot = MockPlot {}; - figure.add_plot(plot); - assert_eq!(figure.plots.len(), 1); - } - - #[test] - fn create() { - let figure = Figure::new("test_create", None); - figure.create().unwrap(); - assert!(std::path::Path::new("test_create.png").exists()); - std::fs::remove_file("test_create.png").unwrap(); - } -} diff --git a/crates/analysis/src/visualize/plots/heatmap.rs b/crates/analysis/src/visualize/plots/heatmap.rs deleted file mode 100644 index 93dbcfead..000000000 --- a/crates/analysis/src/visualize/plots/heatmap.rs +++ /dev/null @@ -1,99 +0,0 @@ -use super::*; - -#[derive(Clone, Debug)] -pub struct HeatMapPlot { - pub column_data: Vec, - pub row_data: Vec, - pub value: Vec>, -} - -impl Plot for HeatMapPlot { - fn plot(&self, drawing_area: &DrawingArea) -> Result<()> { - // We assume that `row_data` and `column_data` are evenly spaced. If not, - // additional calculations would be required. - let row_interval = if self.row_data.len() > 1 { - self.row_data[1] - self.row_data[0] - } else { - 1.0 - }; - - let column_interval = if self.column_data.len() > 1 { - self.column_data[1] - self.column_data[0] - } else { - 1.0 - }; - - let mut chart = ChartBuilder::on(drawing_area) - .caption("HeatMap", ("sans-serif", 40).into_font()) - .margin(5) - .x_label_area_size(30) - .y_label_area_size(30) - .build_cartesian_2d( - self.column_data[0]..self.column_data.last().unwrap() + column_interval, - self.row_data[0]..self.row_data.last().unwrap() + row_interval, - )?; - - let max_value = self - .value - .iter() - .flat_map(|row| row.iter()) - .cloned() - .fold(f64::NAN, f64::max); - - chart.draw_series( - self.clone() - .value - .iter() - .enumerate() - .flat_map(|(y_idx, row)| { - row.iter().enumerate().map(move |(x_idx, &value)| { - let x = self.column_data[x_idx]; - let y = self.row_data[y_idx]; - (x, y, value) - }) - }) - .map(|(x, y, value)| { - Rectangle::new( - [(x, y), (x + column_interval, y + row_interval)], - HSLColor( - 240.0 / 360.0 - 240.0 / 360.0 * (value / max_value), - 0.7, - 0.1 + 0.4 * value / max_value, - ) - .filled(), - ) - }), - )?; - - Ok(()) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn add_heatmap_plot() { - let mut figure = Figure::new("test_add_heatmap_plot", None); - let heatmap = HeatMapPlot { - column_data: vec![0.0, 1.0, 2.0], - row_data: vec![0.0, 1.0], - value: vec![vec![0.0, 1.0, 2.0], vec![0.0, 1.0, 3.0]], - }; - } - - #[test] - fn create_heatmap_plot() { - let mut figure = Figure::new("test_create_heatmap_plot", None); - let heatmap = HeatMapPlot { - column_data: vec![0.0, 1.0, 2.0], - row_data: vec![0.0, 1.0], - value: vec![vec![2.0, 4.0, 2.0], vec![3.0, 1.0, 5.0]], - }; - figure.add_plot(heatmap); - figure.create().unwrap(); - assert!(std::path::Path::new("test_create_heatmap_plot.png").exists()); - std::fs::remove_file("test_create_heatmap_plot.png").unwrap(); - } -} diff --git a/crates/analysis/src/visualize/plots/line.rs b/crates/analysis/src/visualize/plots/line.rs deleted file mode 100644 index 8a29f5b3f..000000000 --- a/crates/analysis/src/visualize/plots/line.rs +++ /dev/null @@ -1,61 +0,0 @@ -use super::*; - -pub struct LinePlot { - pub plot_settings: Option, - pub x_data: Vec, - pub y_data: Vec, -} - -impl LinePlot { - pub fn new(x_data: Vec, y_data: Vec) -> Self { - Self { - plot_settings: None, - x_data, - y_data, - } - } - - pub fn settings(mut self, plot_settings: PlotSettings) -> Self { - self.plot_settings = Some(plot_settings); - self - } -} - -impl Plot for LinePlot { - fn plot(&self, drawing_area: &DrawingArea) -> Result<()> { - let statistical_plot_with_zero_std = StatisticalPlot::from(self); - statistical_plot_with_zero_std.plot(drawing_area)?; - Ok(()) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn add_line_plot() { - let line_plot = LinePlot { - plot_settings: None, - x_data: vec![0.0, 1.0, 2.0], - y_data: vec![0.0, 1.0, 2.0], - }; - let mut figure = Figure::new("test_add_line_plot", None); - figure.add_plot(line_plot); - assert_eq!(figure.plots.len(), 1); - } - - #[test] - fn create_line_plot() { - let line_plot = LinePlot { - plot_settings: None, - x_data: vec![0.0, 1.0, 2.0], - y_data: vec![0.0, 1.0, 2.0], - }; - let mut figure = Figure::new("test_create_line_plot", None); - figure.add_plot(line_plot); - figure.create().unwrap(); - assert!(std::path::Path::new("test_create_line_plot.png").exists()); - std::fs::remove_file("test_create_line_plot.png").unwrap(); - } -} diff --git a/crates/analysis/src/visualize/plots/mod.rs b/crates/analysis/src/visualize/plots/mod.rs deleted file mode 100644 index ad43cf476..000000000 --- a/crates/analysis/src/visualize/plots/mod.rs +++ /dev/null @@ -1,56 +0,0 @@ -use super::*; - -pub mod heatmap; -pub mod line; -pub mod statistical; - -pub trait Plot { - fn plot(&self, drawing_area: &DrawingArea) -> Result<()>; -} - -#[derive(Clone, Debug, Default)] -pub struct PlotSettings { - pub title: Option, - pub x_desc: Option, - pub y_desc: Option, -} - -impl PlotSettings { - #[allow(clippy::new_without_default)] - pub fn new() -> Self { - Self { - title: None, - x_desc: None, - y_desc: None, - } - } - - pub fn labels(mut self, x_desc: &str, y_desc: &str) -> Self { - self.x_desc = Some(x_desc.to_owned()); - self.y_desc = Some(y_desc.to_owned()); - self - } - - pub fn title(mut self, title: &str) -> Self { - self.title = Some(title.to_owned()); - self - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn labels() { - let settings = PlotSettings::new().labels("x", "y"); - assert_eq!(settings.x_desc, Some("x".to_owned())); - assert_eq!(settings.y_desc, Some("y".to_owned())); - } - - #[test] - fn title() { - let settings = PlotSettings::new().title("title"); - assert_eq!(settings.title, Some("title".to_owned())); - } -} diff --git a/crates/analysis/src/visualize/plots/statistical.rs b/crates/analysis/src/visualize/plots/statistical.rs deleted file mode 100644 index 03a23a8ca..000000000 --- a/crates/analysis/src/visualize/plots/statistical.rs +++ /dev/null @@ -1,184 +0,0 @@ -use plotters::drawing; - -use super::{line::LinePlot, *}; - -pub struct StatisticalPlot { - pub plot_settings: Option, - pub x_data: Vec, - pub y_data: Vec>, -} - -impl StatisticalPlot { - pub fn new(x_data: Vec, y_data: Vec>) -> Self { - Self { - plot_settings: None, - x_data, - y_data, - } - } - - pub fn settings(mut self, plot_settings: PlotSettings) -> Self { - self.plot_settings = Some(plot_settings); - self - } -} - -impl From<&LinePlot> for StatisticalPlot { - fn from(line_plot: &LinePlot) -> Self { - let y_data = vec![line_plot.y_data.clone()]; - Self { - plot_settings: line_plot.plot_settings.clone(), - x_data: line_plot.x_data.clone(), - y_data, - } - } -} - -impl Plot for StatisticalPlot { - fn plot(&self, drawing_area: &DrawingArea) -> Result<()> { - // Compute x range - let x_min = *self - .x_data - .iter() - .min_by(|a, b| a.partial_cmp(b).unwrap()) - .unwrap_or(&0.0); - let x_max = *self - .x_data - .iter() - .max_by(|a, b| a.partial_cmp(b).unwrap()) - .unwrap_or(&1.0); - - // Compute y range considering mean and standard deviation - let avg_with_std: Vec<(f64, f64, f64)> = (0..self.x_data.len()) - .map(|i| { - let values_at_i: Vec = self.y_data.iter().map(|y_set| y_set[i]).collect(); - let mean = values_at_i.iter().sum::() / values_at_i.len() as f64; - let std_dev = (values_at_i.iter().map(|&y| (y - mean).powi(2)).sum::() - / values_at_i.len() as f64) - .sqrt(); - (self.x_data[i], mean, std_dev) - }) - .collect(); - - let y_min = avg_with_std - .iter() - .map(|&(_, mean, std_dev)| mean - std_dev) - .min_by(|a, b| a.partial_cmp(b).unwrap()) - .unwrap_or(0.0); - let y_max = avg_with_std - .iter() - .map(|&(_, mean, std_dev)| mean + std_dev) - .max_by(|a, b| a.partial_cmp(b).unwrap()) - .unwrap_or(1.0); - - let caption = &self - .plot_settings - .clone() - .unwrap_or_default() - .title - .unwrap_or("Statistical Plot".to_owned()); - let x_desc = &self - .plot_settings - .clone() - .unwrap_or_default() - .x_desc - .unwrap_or("X".to_owned()); - let y_desc = &self - .plot_settings - .clone() - .unwrap_or_default() - .y_desc - .unwrap_or("Y".to_owned()); - let mut chart = ChartBuilder::on(drawing_area) - .caption(caption, ("Arial", 24).into_font()) - .margin(5) - .x_label_area_size(30) - .y_label_area_size(30) - .build_cartesian_2d(x_min..x_max, y_min..y_max)?; - - chart - .configure_mesh() - .x_desc(x_desc) - .y_desc(y_desc) - .draw()?; - - let average_signal: Vec<(f64, f64)> = - avg_with_std.iter().map(|&(x, mean, _)| (x, mean)).collect(); - let standard_deviation: Vec = avg_with_std - .iter() - .map(|&(_, _, std_dev)| std_dev) - .collect(); - - // Shade the region for standard deviation - let upper_curve: Vec<(f64, f64)> = average_signal - .iter() - .enumerate() - .map(|(i, &(x, y))| (x, y + standard_deviation[i])) - .collect(); - - let lower_curve: Vec<(f64, f64)> = average_signal - .iter() - .enumerate() - .map(|(i, &(x, y))| (x, y - standard_deviation[i])) - .collect(); - - chart.draw_series(AreaSeries::new( - upper_curve - .iter() - .cloned() - .chain(lower_curve.iter().rev().cloned()), - 0.0, // baseline - BLUE.mix(0.3), - ))?; - - // Plot average signal over shaded region - chart.draw_series(LineSeries::new(average_signal, &RED)); - Ok(()) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn new() { - let x_data = vec![0.0, 1.0, 2.0]; - let y_data = vec![vec![0.0, 1.0, 2.0], vec![0.0, 1.0, 3.0]]; - let plot = StatisticalPlot::new(x_data, y_data); - } - - #[test] - fn settings() { - let x_data = vec![0.0, 1.0, 2.0]; - let y_data = vec![vec![0.0, 1.0, 2.0], vec![0.0, 1.0, 3.0]]; - let plot = StatisticalPlot::new(x_data, y_data); - let plot_settings = PlotSettings::new() - .title("Test Title") - .labels("Test X", "Test Y"); - let plot = plot.settings(plot_settings); - assert!(plot.plot_settings.is_some()); - } - - #[test] - fn add_statistical_plot() { - let mut figure = Figure::new("test_add_statistical_plot", None); - let x_data = vec![0.0, 1.0, 2.0]; - let y_data = vec![vec![0.0, 1.0, 2.0], vec![0.0, 1.0, 3.0]]; - let plot = StatisticalPlot::new(x_data, y_data); - figure.add_plot(plot); - assert_eq!(figure.plots.len(), 1); - } - - #[test] - fn create_statistical_plot() { - let mut figure = Figure::new("test_create_statistical_plot", None); - let x_data = vec![0.0, 1.0, 2.0]; - let y_data = vec![vec![0.0, 1.0, 2.0], vec![0.0, 1.0, 3.0]]; - let plot = StatisticalPlot::new(x_data, y_data); - figure.add_plot(plot); - figure.create().unwrap(); - assert!(std::path::Path::new("test_create_statistical_plot.png").exists()); - std::fs::remove_file("test_create_statistical_plot.png").unwrap(); - } -} diff --git a/crates/analysis/test_data/test_output.png b/crates/analysis/test_data/test_output.png deleted file mode 100644 index c0a8e04b6c052f7e09311f225c158a925e27f3a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72594 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μv@f094+zsy?6KCES!MB#pQ8xXC6f^yJHdE)% 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

3BhVT7xrIApWTblQSY5Zk?1+NAZ7~4B#yqXXRlH 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 -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod arb_math { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("cdf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("cdf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("input"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("output"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("divWadDown"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("divWadDown"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("divWadUp"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("divWadUp"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("log"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("mulWadDown"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("mulWadDown"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("mulWadUp"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("mulWadUp"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("pdf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("pdf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("input"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("output"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("pow"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("pow"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("ppf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("ppf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("input"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("output"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("sqrt"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("sqrt"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Infinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Infinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Min"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Min"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("OutOfBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("OutOfBounds"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static ARBMATH_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\0\x19W`@Qa\x0F\xE8\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x03\x9FW`\x005`\xE0\x1C\x80c-[l\xB9\x14a\0\xACW\x80c6yr:\x14a\0\xA7W\x80c7\xC6\xA4J\x14a\0\xA2W\x80cgsB\xCE\x14a\0\x9DW\x80c\x92\xB0\xC5\xB2\x14a\0\x98W\x80c\xAE\x97h\xA8\x14a\0\x93W\x80c\xBD%-\x06\x14a\0\x8EW\x80c\xD0\xB7\x1B\x1E\x14a\0\x89W\x80c\xD2L\xE6\xE5\x14a\0\x84Wc\xE5$\xF8I\x03a\x03\x9FWa\x03_V[a\x03%V[a\x02\xD3V[a\x02\x86V[a\x02:V[a\x01\xFFV[a\x01\xE1V[a\x01\x9AV[a\x01wV[4a\0\xD7W` 6`\x03\x19\x01\x12a\0\xD2W` a\0\xCA`\x045a\x04:V[`@Q\x90\x81R\xF3[a\x01'V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\x95W` 6`\x03\x19\x01\x12a\0\xD2W` a\0\xCA`\x045a\x06\x81V[a\0\xD7V[4a\x01\x95W`@6`\x03\x19\x01\x12a\0\xD2W`\x045`$5\x90g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x01\xDCW` \x91`@Q\x91\x04\x81R\xF3[`\0\x80\xFD[4a\x01\x95W` 6`\x03\x19\x01\x12a\0\xD2W` a\0\xCA`\x045a\x08WV[4a\x01\x95W`@6`\x03\x19\x01\x12a\0\xD2W` a\0\xCAg\r\xE0\xB6\xB3\xA7d\0\0a\x024`$5a\x02/`\x045a\x04:V[a\x06MV[\x05a\x0B1V[4a\x01\x95W`@6`\x03\x19\x01\x12a\0\xD2W`\x045`$5\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCW` \x90`@Q\x90`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x81R\xF3[4a\x01\x95W`@6`\x03\x19\x01\x12a\0\xD2W`\x045`$5g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x01\xDCW` \x91`\x01`@Q\x92`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x81R\xF3[4a\x01\x95W` 6`\x03\x19\x01\x12a\0\xD2W` g\x1B\xC1mgN\xC8\0\0a\x03\x1Ca\x03\x17a\x03\x12g\x13\xA0K\xBD\xFD\xC9\xBE\x88a\x03\x0C`\x045a\x05\xF1V[\x05a\x06pV[a\x0C\xB5V[a\x05\xF1V[\x05`@Q\x90\x81R\xF3[4a\x01\x95W` 6`\x03\x19\x01\x12a\0\xD2W` g\"\xC9U\"\x95T\xC1\xB6a\x03\x1Ca\x03\x17g\x1B\xC1mgN\xC8\0\0a\x024`\x045a\x02/\x81a\x06pV[4a\x01\x95W`@6`\x03\x19\x01\x12a\0\xD2W`\x045`$5\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCW` \x90g\r\xE0\xB6\xB3\xA7d\0\0`@Q\x91\x04\x81R\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x15a\x04\tWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x90a\x04f`\0\x82\x13a\x04\x02V[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\x04\x82\x82a\t\x15V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1D\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x06\x0EWV[a\x05\xDBV[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x06\x0EWV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\x06\x0EW`\0\x19\x83\x05\x03a\x06\x0EWV[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\x06\x0EW\x81\x84\x05\x14\x90\x15\x17\x15a\x06\x0EWV[`\x01`\xFF\x1B\x81\x14a\x06\x0EW`\0\x03\x90V[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a\x08QWg\r\xE0\xB6\xB3\xA7d\0\0\x80\x82\x12\x15a\x07\xFBW\x81\x15a\x08\x1CW`\x01\x82`\x01\x1B\x91`\x02\x93\x83\x05`\x02\x03a\x06\x0EW`\0\x83\x12\x80\x15a\x08@W[a\x08.W\x82\x15a\x07\xFBWg\x1B\xC1mgN\xC8\0\0\x83\x14a\x08\x1CW\x82\x12\x91\x82\x15a\x08\rW\x92[a\x06\xF2\x84a\x0E\x01V[\x80\x15a\x07\xFBWa\x07da\x07#a\x07\x1Ea\x07\x19a\x07\x14a\x07i\x95\x99\x97\x96\x99a\x04:V[a\x0E\xC2V[a\x08WV[a\x06\x13V[a\x07_a\x077a\x072\x83a\x0E,V[a\t\xDCV[a\x07Ya\x07Ta\x07Na\x07I\x86a\x0EWV[a\t\xF4V[\x85a\x0F9V[a\n\x0CV[\x90a\x0E\xA0V[a\t\xC3V[a\x0E\xEAV[\x93`\0\x92[\x81\x84\x10a\x07\xA3WPPPPa\x07\x92\x91a\x07\x8D\x91`\0\x14a\x07\x95Wa\r\xDAV[a\x06pV[\x90V[a\x07\x9E\x90a\x06pV[a\r\xDAV[\x90\x91a\x07\xF1\x86a\x07\xEBa\x07\xBB\x85a\x07_\x86\x99\x9Ba\x0C\xB5V[a\x07Ya\x07\xDBa\x07\xD6a\x07\xD1a\x07\x8D\x87\x80a\x0F9V[a\x0B1V[a\x0F\x12V[a\x07\xE5\x83\x86a\x0F9V[\x90a\t\xC3V[\x90a\n\xEAV[\x95\x01\x92\x91\x90a\x07nV[`@Qc\x07\xA0!'`\xE0\x1B\x81R`\x04\x90\xFD[a\x08\x16\x90a\t\x87V[\x92a\x06\xE9V[`@Qc\"\xEDY\x85`\xE2\x1B\x81R`\x04\x90\xFD[`@Qc-\x04\x83\xC5`\xE2\x1B\x81R`\x04\x90\xFD[Pg\x1B\xC1mgN\xC8\0\0\x83\x13a\x06\xC5V[P`\0\x90V[`\xB5\x81`\x01`\x88\x1B\x81\x10\x15a\x08\xFEW[\x80i\x01\0\0\0\0\0\0\0\0\0b\x01\0\0\x92\x10\x15a\x08\xF1W[e\x01\0\0\0\0\0\x81\x10\x15a\x08\xE4W[c\x01\0\0\0\x81\x10\x15a\x08\xD7W[\x01\x02`\x12\x1C`\x01\x90\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x90\x1C\x80\x80\x92\x04\x10\x90\x03\x90V[`\x10\x1C\x91`\x08\x1B\x91a\x08\x9BV[` \x1C\x91`\x10\x1B\x91a\x08\x8EV[`@\x1C\x91` \x1B\x91a\x08\x7FV[Ph\xB5\0\0\0\0\0\0\0\0\x90P`\x80\x82\x90\x1Ca\x08gV[a\t \x81\x15\x15a\x04\x02V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x06\x0EWV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\x06\x0EWV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x06\x0EWV[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x06\x0EWV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x06\x0EWV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x06\x0EWV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\x06\x0EWV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\x1B\xC1mgN\xC8\0\0\x90\x04\x90V[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a\x08QWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x0C\x81We\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[\x80\x15a\r\xCDWgV\x98\xEE\xF0fp\0\0\x81\x12\x15a\x08QWgV\x98\xEE\xF0fo\xFF\xFF\x19\x81\x13\x15a\r\xC0W`\0a\r\xB0a\x0C\xEA\x83a\x0F\x85V[a\rsa\x07\xD1a\r\x04a\x0C\xFFa\x07T\x85a\x0B\x06V[a\x0E\x81V[\x92a\r\xABa\r\xA6a\r\xA1a\r\x9Aa\r\x94a\r\x8Fa\r\x89a\r\x84a\r~a\ry\x8Da\rsa\rna\rha\rca\x07Na\r^a\rXa\rSa\rMa\rH\x8Aa\x0FZV[a\n$V[\x89a\x0F9V[a\n>V[\x87a\x0F9V[a\nVV[a\npV[\x83a\x0F9V[a\n\x88V[\x90a\x0F9V[a\n\xA2V[\x8Ca\x0F9V[a\n\xBAV[\x8Aa\x0F9V[a\n\xD2V[\x88a\x0F9V[\x93\x80a\x0F9V[a\x06,V[a\t\xAAV[a\n\xEAV[\x91\x12\x15a\x07\x92Wa\x07\x92\x90a\t\x87V[Pg\x1B\xC1mgN\xC8\0\0\x90V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x90V[g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x01\xDCWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x01\xDCW\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01`\xFF\x1B\x81\x14a\x0F\xA0W`\0\x81\x12\x15a\x07\x92W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD\xFE\xA2dipfsX\"\x12 \x11F'\xC6 Pdb<\x9D\xAA\x96\x1C\tIj?\x86\xBF}?\xE2\xE1C\x01\x86J\x85\x93.E\x87dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static ARBMATH_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\x03\x9FW`\x005`\xE0\x1C\x80c-[l\xB9\x14a\0\xACW\x80c6yr:\x14a\0\xA7W\x80c7\xC6\xA4J\x14a\0\xA2W\x80cgsB\xCE\x14a\0\x9DW\x80c\x92\xB0\xC5\xB2\x14a\0\x98W\x80c\xAE\x97h\xA8\x14a\0\x93W\x80c\xBD%-\x06\x14a\0\x8EW\x80c\xD0\xB7\x1B\x1E\x14a\0\x89W\x80c\xD2L\xE6\xE5\x14a\0\x84Wc\xE5$\xF8I\x03a\x03\x9FWa\x03_V[a\x03%V[a\x02\xD3V[a\x02\x86V[a\x02:V[a\x01\xFFV[a\x01\xE1V[a\x01\x9AV[a\x01wV[4a\0\xD7W` 6`\x03\x19\x01\x12a\0\xD2W` a\0\xCA`\x045a\x04:V[`@Q\x90\x81R\xF3[a\x01'V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\x95W` 6`\x03\x19\x01\x12a\0\xD2W` a\0\xCA`\x045a\x06\x81V[a\0\xD7V[4a\x01\x95W`@6`\x03\x19\x01\x12a\0\xD2W`\x045`$5\x90g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x01\xDCW` \x91`@Q\x91\x04\x81R\xF3[`\0\x80\xFD[4a\x01\x95W` 6`\x03\x19\x01\x12a\0\xD2W` a\0\xCA`\x045a\x08WV[4a\x01\x95W`@6`\x03\x19\x01\x12a\0\xD2W` a\0\xCAg\r\xE0\xB6\xB3\xA7d\0\0a\x024`$5a\x02/`\x045a\x04:V[a\x06MV[\x05a\x0B1V[4a\x01\x95W`@6`\x03\x19\x01\x12a\0\xD2W`\x045`$5\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCW` \x90`@Q\x90`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x81R\xF3[4a\x01\x95W`@6`\x03\x19\x01\x12a\0\xD2W`\x045`$5g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x01\xDCW` \x91`\x01`@Q\x92`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x81R\xF3[4a\x01\x95W` 6`\x03\x19\x01\x12a\0\xD2W` g\x1B\xC1mgN\xC8\0\0a\x03\x1Ca\x03\x17a\x03\x12g\x13\xA0K\xBD\xFD\xC9\xBE\x88a\x03\x0C`\x045a\x05\xF1V[\x05a\x06pV[a\x0C\xB5V[a\x05\xF1V[\x05`@Q\x90\x81R\xF3[4a\x01\x95W` 6`\x03\x19\x01\x12a\0\xD2W` g\"\xC9U\"\x95T\xC1\xB6a\x03\x1Ca\x03\x17g\x1B\xC1mgN\xC8\0\0a\x024`\x045a\x02/\x81a\x06pV[4a\x01\x95W`@6`\x03\x19\x01\x12a\0\xD2W`\x045`$5\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCW` \x90g\r\xE0\xB6\xB3\xA7d\0\0`@Q\x91\x04\x81R\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x15a\x04\tWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x90a\x04f`\0\x82\x13a\x04\x02V[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\x04\x82\x82a\t\x15V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1D\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x06\x0EWV[a\x05\xDBV[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x06\x0EWV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\x06\x0EW`\0\x19\x83\x05\x03a\x06\x0EWV[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\x06\x0EW\x81\x84\x05\x14\x90\x15\x17\x15a\x06\x0EWV[`\x01`\xFF\x1B\x81\x14a\x06\x0EW`\0\x03\x90V[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a\x08QWg\r\xE0\xB6\xB3\xA7d\0\0\x80\x82\x12\x15a\x07\xFBW\x81\x15a\x08\x1CW`\x01\x82`\x01\x1B\x91`\x02\x93\x83\x05`\x02\x03a\x06\x0EW`\0\x83\x12\x80\x15a\x08@W[a\x08.W\x82\x15a\x07\xFBWg\x1B\xC1mgN\xC8\0\0\x83\x14a\x08\x1CW\x82\x12\x91\x82\x15a\x08\rW\x92[a\x06\xF2\x84a\x0E\x01V[\x80\x15a\x07\xFBWa\x07da\x07#a\x07\x1Ea\x07\x19a\x07\x14a\x07i\x95\x99\x97\x96\x99a\x04:V[a\x0E\xC2V[a\x08WV[a\x06\x13V[a\x07_a\x077a\x072\x83a\x0E,V[a\t\xDCV[a\x07Ya\x07Ta\x07Na\x07I\x86a\x0EWV[a\t\xF4V[\x85a\x0F9V[a\n\x0CV[\x90a\x0E\xA0V[a\t\xC3V[a\x0E\xEAV[\x93`\0\x92[\x81\x84\x10a\x07\xA3WPPPPa\x07\x92\x91a\x07\x8D\x91`\0\x14a\x07\x95Wa\r\xDAV[a\x06pV[\x90V[a\x07\x9E\x90a\x06pV[a\r\xDAV[\x90\x91a\x07\xF1\x86a\x07\xEBa\x07\xBB\x85a\x07_\x86\x99\x9Ba\x0C\xB5V[a\x07Ya\x07\xDBa\x07\xD6a\x07\xD1a\x07\x8D\x87\x80a\x0F9V[a\x0B1V[a\x0F\x12V[a\x07\xE5\x83\x86a\x0F9V[\x90a\t\xC3V[\x90a\n\xEAV[\x95\x01\x92\x91\x90a\x07nV[`@Qc\x07\xA0!'`\xE0\x1B\x81R`\x04\x90\xFD[a\x08\x16\x90a\t\x87V[\x92a\x06\xE9V[`@Qc\"\xEDY\x85`\xE2\x1B\x81R`\x04\x90\xFD[`@Qc-\x04\x83\xC5`\xE2\x1B\x81R`\x04\x90\xFD[Pg\x1B\xC1mgN\xC8\0\0\x83\x13a\x06\xC5V[P`\0\x90V[`\xB5\x81`\x01`\x88\x1B\x81\x10\x15a\x08\xFEW[\x80i\x01\0\0\0\0\0\0\0\0\0b\x01\0\0\x92\x10\x15a\x08\xF1W[e\x01\0\0\0\0\0\x81\x10\x15a\x08\xE4W[c\x01\0\0\0\x81\x10\x15a\x08\xD7W[\x01\x02`\x12\x1C`\x01\x90\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x90\x1C\x80\x80\x92\x04\x10\x90\x03\x90V[`\x10\x1C\x91`\x08\x1B\x91a\x08\x9BV[` \x1C\x91`\x10\x1B\x91a\x08\x8EV[`@\x1C\x91` \x1B\x91a\x08\x7FV[Ph\xB5\0\0\0\0\0\0\0\0\x90P`\x80\x82\x90\x1Ca\x08gV[a\t \x81\x15\x15a\x04\x02V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x06\x0EWV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\x06\x0EWV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x06\x0EWV[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x06\x0EWV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x06\x0EWV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x06\x0EWV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\x06\x0EWV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\x06\x0EWV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\x1B\xC1mgN\xC8\0\0\x90\x04\x90V[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a\x08QWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x0C\x81We\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[\x80\x15a\r\xCDWgV\x98\xEE\xF0fp\0\0\x81\x12\x15a\x08QWgV\x98\xEE\xF0fo\xFF\xFF\x19\x81\x13\x15a\r\xC0W`\0a\r\xB0a\x0C\xEA\x83a\x0F\x85V[a\rsa\x07\xD1a\r\x04a\x0C\xFFa\x07T\x85a\x0B\x06V[a\x0E\x81V[\x92a\r\xABa\r\xA6a\r\xA1a\r\x9Aa\r\x94a\r\x8Fa\r\x89a\r\x84a\r~a\ry\x8Da\rsa\rna\rha\rca\x07Na\r^a\rXa\rSa\rMa\rH\x8Aa\x0FZV[a\n$V[\x89a\x0F9V[a\n>V[\x87a\x0F9V[a\nVV[a\npV[\x83a\x0F9V[a\n\x88V[\x90a\x0F9V[a\n\xA2V[\x8Ca\x0F9V[a\n\xBAV[\x8Aa\x0F9V[a\n\xD2V[\x88a\x0F9V[\x93\x80a\x0F9V[a\x06,V[a\t\xAAV[a\n\xEAV[\x91\x12\x15a\x07\x92Wa\x07\x92\x90a\t\x87V[Pg\x1B\xC1mgN\xC8\0\0\x90V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x90V[g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x01\xDCWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x01\xDCW\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x01\xDCWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01`\xFF\x1B\x81\x14a\x0F\xA0W`\0\x81\x12\x15a\x07\x92W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD\xFE\xA2dipfsX\"\x12 \x11F'\xC6 Pdb<\x9D\xAA\x96\x1C\tIj?\x86\xBF}?\xE2\xE1C\x01\x86J\x85\x93.E\x87dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static ARBMATH_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct ArbMath(::ethers::contract::Contract); - impl ::core::clone::Clone for ArbMath { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for ArbMath { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for ArbMath { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for ArbMath { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(ArbMath)).field(&self.address()).finish() - } - } - impl ArbMath { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - ARBMATH_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ARBMATH_ABI.clone(), - ARBMATH_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `cdf` (0xd0b71b1e) function - pub fn cdf( - &self, - input: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 183, 27, 30], input) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `divWadDown` (0x37c6a44a) function - pub fn div_wad_down( - &self, - x: ::ethers::core::types::U256, - y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([55, 198, 164, 74], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `divWadUp` (0xbd252d06) function - pub fn div_wad_up( - &self, - x: ::ethers::core::types::U256, - y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([189, 37, 45, 6], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `log` (0x2d5b6cb9) function - pub fn log( - &self, - x: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([45, 91, 108, 185], x) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mulWadDown` (0xe524f849) function - pub fn mul_wad_down( - &self, - x: ::ethers::core::types::U256, - y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([229, 36, 248, 73], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mulWadUp` (0xae9768a8) function - pub fn mul_wad_up( - &self, - x: ::ethers::core::types::U256, - y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([174, 151, 104, 168], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pdf` (0xd24ce6e5) function - pub fn pdf( - &self, - input: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([210, 76, 230, 229], input) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pow` (0x92b0c5b2) function - pub fn pow( - &self, - x: ::ethers::core::types::I256, - y: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([146, 176, 197, 178], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ppf` (0x3679723a) function - pub fn ppf( - &self, - input: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 121, 114, 58], input) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `sqrt` (0x677342ce) function - pub fn sqrt( - &self, - x: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([103, 115, 66, 206], x) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for ArbMath { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Min", abi = "Min()")] - pub struct Min; - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum ArbMathErrors { - Infinity(Infinity), - Min(Min), - NegativeInfinity(NegativeInfinity), - OutOfBounds(OutOfBounds), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for ArbMathErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Min(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::OutOfBounds(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ArbMathErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::Infinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeInfinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::OutOfBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for ArbMathErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => true, - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for ArbMathErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::Min(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for ArbMathErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for ArbMathErrors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for ArbMathErrors { - fn from(value: Min) -> Self { - Self::Min(value) - } - } - impl ::core::convert::From for ArbMathErrors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for ArbMathErrors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } - ///Container type for all input parameters for the `cdf` function with signature `cdf(int256)` and selector `0xd0b71b1e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "cdf", abi = "cdf(int256)")] - pub struct CdfCall { - pub input: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `divWadDown` function with signature `divWadDown(uint256,uint256)` and selector `0x37c6a44a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "divWadDown", abi = "divWadDown(uint256,uint256)")] - pub struct DivWadDownCall { - pub x: ::ethers::core::types::U256, - pub y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `divWadUp` function with signature `divWadUp(uint256,uint256)` and selector `0xbd252d06` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "divWadUp", abi = "divWadUp(uint256,uint256)")] - pub struct DivWadUpCall { - pub x: ::ethers::core::types::U256, - pub y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `log` function with signature `log(int256)` and selector `0x2d5b6cb9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "log", abi = "log(int256)")] - pub struct LogCall { - pub x: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `mulWadDown` function with signature `mulWadDown(uint256,uint256)` and selector `0xe524f849` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mulWadDown", abi = "mulWadDown(uint256,uint256)")] - pub struct MulWadDownCall { - pub x: ::ethers::core::types::U256, - pub y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `mulWadUp` function with signature `mulWadUp(uint256,uint256)` and selector `0xae9768a8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mulWadUp", abi = "mulWadUp(uint256,uint256)")] - pub struct MulWadUpCall { - pub x: ::ethers::core::types::U256, - pub y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `pdf` function with signature `pdf(int256)` and selector `0xd24ce6e5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pdf", abi = "pdf(int256)")] - pub struct PdfCall { - pub input: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `pow` function with signature `pow(int256,int256)` and selector `0x92b0c5b2` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pow", abi = "pow(int256,int256)")] - pub struct PowCall { - pub x: ::ethers::core::types::I256, - pub y: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `ppf` function with signature `ppf(int256)` and selector `0x3679723a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "ppf", abi = "ppf(int256)")] - pub struct PpfCall { - pub input: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `sqrt` function with signature `sqrt(uint256)` and selector `0x677342ce` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "sqrt", abi = "sqrt(uint256)")] - pub struct SqrtCall { - pub x: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum ArbMathCalls { - Cdf(CdfCall), - DivWadDown(DivWadDownCall), - DivWadUp(DivWadUpCall), - Log(LogCall), - MulWadDown(MulWadDownCall), - MulWadUp(MulWadUpCall), - Pdf(PdfCall), - Pow(PowCall), - Ppf(PpfCall), - Sqrt(SqrtCall), - } - impl ::ethers::core::abi::AbiDecode for ArbMathCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Cdf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DivWadDown(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DivWadUp(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Log(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::MulWadDown(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::MulWadUp(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Pdf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Pow(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Ppf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Sqrt(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ArbMathCalls { - fn encode(self) -> Vec { - match self { - Self::Cdf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::DivWadDown(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DivWadUp(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Log(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::MulWadDown(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::MulWadUp(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Pdf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pow(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Ppf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Sqrt(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for ArbMathCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Cdf(element) => ::core::fmt::Display::fmt(element, f), - Self::DivWadDown(element) => ::core::fmt::Display::fmt(element, f), - Self::DivWadUp(element) => ::core::fmt::Display::fmt(element, f), - Self::Log(element) => ::core::fmt::Display::fmt(element, f), - Self::MulWadDown(element) => ::core::fmt::Display::fmt(element, f), - Self::MulWadUp(element) => ::core::fmt::Display::fmt(element, f), - Self::Pdf(element) => ::core::fmt::Display::fmt(element, f), - Self::Pow(element) => ::core::fmt::Display::fmt(element, f), - Self::Ppf(element) => ::core::fmt::Display::fmt(element, f), - Self::Sqrt(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ArbMathCalls { - fn from(value: CdfCall) -> Self { - Self::Cdf(value) - } - } - impl ::core::convert::From for ArbMathCalls { - fn from(value: DivWadDownCall) -> Self { - Self::DivWadDown(value) - } - } - impl ::core::convert::From for ArbMathCalls { - fn from(value: DivWadUpCall) -> Self { - Self::DivWadUp(value) - } - } - impl ::core::convert::From for ArbMathCalls { - fn from(value: LogCall) -> Self { - Self::Log(value) - } - } - impl ::core::convert::From for ArbMathCalls { - fn from(value: MulWadDownCall) -> Self { - Self::MulWadDown(value) - } - } - impl ::core::convert::From for ArbMathCalls { - fn from(value: MulWadUpCall) -> Self { - Self::MulWadUp(value) - } - } - impl ::core::convert::From for ArbMathCalls { - fn from(value: PdfCall) -> Self { - Self::Pdf(value) - } - } - impl ::core::convert::From for ArbMathCalls { - fn from(value: PowCall) -> Self { - Self::Pow(value) - } - } - impl ::core::convert::From for ArbMathCalls { - fn from(value: PpfCall) -> Self { - Self::Ppf(value) - } - } - impl ::core::convert::From for ArbMathCalls { - fn from(value: SqrtCall) -> Self { - Self::Sqrt(value) - } - } - ///Container type for all return fields from the `cdf` function with signature `cdf(int256)` and selector `0xd0b71b1e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CdfReturn { - pub output: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `divWadDown` function with signature `divWadDown(uint256,uint256)` and selector `0x37c6a44a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DivWadDownReturn { - pub z: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `divWadUp` function with signature `divWadUp(uint256,uint256)` and selector `0xbd252d06` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DivWadUpReturn { - pub z: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `log` function with signature `log(int256)` and selector `0x2d5b6cb9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct LogReturn { - pub z: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `mulWadDown` function with signature `mulWadDown(uint256,uint256)` and selector `0xe524f849` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MulWadDownReturn { - pub z: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `mulWadUp` function with signature `mulWadUp(uint256,uint256)` and selector `0xae9768a8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MulWadUpReturn { - pub z: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `pdf` function with signature `pdf(int256)` and selector `0xd24ce6e5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PdfReturn { - pub output: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `pow` function with signature `pow(int256,int256)` and selector `0x92b0c5b2` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PowReturn { - pub z: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `ppf` function with signature `ppf(int256)` and selector `0x3679723a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PpfReturn { - pub output: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `sqrt` function with signature `sqrt(uint256)` and selector `0x677342ce` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SqrtReturn { - pub z: ::ethers::core::types::U256, - } -} diff --git a/crates/bindings/src/arbiter_token.rs b/crates/bindings/src/arbiter_token.rs deleted file mode 100644 index 39726fda9..000000000 --- a/crates/bindings/src/arbiter_token.rs +++ /dev/null @@ -1,1553 +0,0 @@ -pub use arbiter_token::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod arbiter_token { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("name"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("symbol"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("admin"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("admin"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("allowance"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allowance"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("approve"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("approve"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("decimals"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("decimals"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("mint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("mint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("receiver"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("name"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("name"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("nonces"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("nonces"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("permit"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("permit"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("value"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deadline"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("v"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("r"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("s"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("symbol"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("symbol"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("totalSupply"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("totalSupply"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("transfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("transferFrom"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Approval"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Approval"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Transfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static ARBITERTOKEN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\xE0`@\x90\x80\x82R4b\0\x04\xABWPb\0\x13V\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xF8V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04\\W\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04VW\x82b\0\0V\x91\x85\x01b\0\x05lV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04VW\x83\x91b\0\0u\x91\x84\x01b\0\x05lV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04QW\x84Q\x94\x86\x86\x11b\0\x04;W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06\x90V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xEAW[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03\x82W\x89\x92b\0\x03vW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03bW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06\x90V[\x82\x81\x11b\0\x03\rW[P\x87\x91\x83\x11`\x01\x14b\0\x02\xA9W\x88\x92b\0\x02\x9DW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06\x90V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02}WPP`\x01\x14b\0\x02=W[Pb\0\x01m\x92P\x03\x82b\0\x04\xF8V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02)WP\x83\x90RQ\x90 `\xC0R`\x06\x80T`\x01`\x01`\xA0\x1B\x03\x19\x163\x17\x90Ua\x0C\x88\x90\x81b\0\x06\xCE\x829`\x80Q\x81a\x06\xD0\x01R`\xA0Q\x81a\n\xB0\x01R`\xC0Q\x81a\n\xD7\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02dWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x02JV[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xF6WPP\x84\x11b\0\x02\xDCW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xCEV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xBBV[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03XW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x03IWPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x039V[\x92P\x81\x92b\0\x03*V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xD3WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xB9W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\xABV[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x91V[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x041W[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\"WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x13V[\x92P\x81\x92b\0\x04\x06V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\x1CV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04;W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x067W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04;W` \x90`@Q\x92b\0\x05\xA7\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xF8V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xE2W`\0[\x81\x81\x10b\0\x05\xCEWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xB8V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xC2W[` \x83\x10\x14b\0\x06\xACWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\xA0V\xFE`@`\x80\x81R`\x04\x806\x10\x15a\0pW[` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x08VW\x80c\t^\xA7\xB3\x14a\x07\xE6W\x80c\x18\x16\r\xDD\x14a\x07\xC8W\x80c#\xB8r\xDD\x14a\x06\xF4W\x80c1<\xE5g\x14a\x06\xB7W\x80c6D\xE5\x15\x14a\x06\x94W\x80c@\xC1\x0F\x19\x14a\x05\xA8W\x80cp\xA0\x821\x14a\x05pW\x80c~\xCE\xBE\0\x14a\x058W\x80c\x95\xD8\x9BA\x14a\x04UW\x80c\xA9\x05\x9C\xBB\x14a\x03\xD1W\x80c\xD5\x05\xAC\xCF\x14a\x01\x92W\x80c\xDDb\xED>\x14a\x01HWc\xF8Q\xA4@\x14a\x01\x16WPa\0\x10V[\x90P4a\x01CW6`\x03\x19\x01\x12a\x01>W`\x06T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\tLV[a\x08\xFCV[P\x91\x904a\x01CW\x81`\x03\x196\x01\x12a\x01>W` \x92\x82\x91a\x01ha\nWV[a\x01pa\nrV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01CW`\xE06`\x03\x19\x01\x12a\x01>Wa\x01\xADa\nWV[\x90a\x01\xB6a\nrV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xCDWB\x85\x10a\x03\x8AWa\x01\xDCa\n\xABV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03vW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03cW\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03YW\x86Q\x16\x96\x87\x15\x15\x80a\x03PW[\x15a\x03\x1EW\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xDBV[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x824a\x01CW\x80`\x03\x196\x01\x12a\x01>W` \x91a\x03\xEEa\nWV[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04\x08\x84\x82Ta\n\x88V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x85\x90\xA3Q`\x01\x81R\xF3[\x83\x824a\x01CW\x80`\x03\x196\x01\x12a\x01>W\x81Q\x90\x80`\x01\x80T\x90a\x04y\x82a\t\x9CV[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x0BWP`\x01\x14a\x04\xB3W[a\x04\xAF\x86\x88a\x04\xA5\x82\x89\x03\x83a\t\xD6V[Q\x91\x82\x91\x82a\n\x0EV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x04\xF8WPPPP\x81\x01` \x01a\x04\xA5\x82a\x04\xAF\x86a\x04\x94V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x04\xDBV[\x90Pa\x04\xAF\x97\x95P\x86\x93P` \x92Pa\x04\xA5\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\x94V[P\x824a\x01CW` 6`\x03\x19\x01\x12a\x01>W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05`a\nWV[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01CW` 6`\x03\x19\x01\x12a\x01>W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x98a\nWV[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x82\x904a\x01CW\x81`\x03\x196\x01\x12a\x01>Wa\x05\xC3a\nWV[`\x06T`$5\x92\x91`\x01`\x01`\xA0\x1B\x03\x91\x82\x163\x03a\x06GW`\x02T\x84\x81\x01\x80\x91\x11a\x064W` \x96P\x91\x86\x91\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x93`\x02U\x16\x93\x84\x84R`\x03\x82R\x85\x84 \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[cNH{q`\xE0\x1B\x84R`\x11\x87R`$\x84\xFD[\x84QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x88\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[\x83\x824a\x01CW6`\x03\x19\x01\x12a\x01>W` \x90a\x06\xB0a\n\xABV[\x90Q\x90\x81R\xF3[\x83\x824a\x01CW6`\x03\x19\x01\x12a\x01>W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P\x82\x904a\x01CW``6`\x03\x19\x01\x12a\x01>Wa\x07\x10a\nWV[\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEFa\x079a\nrV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07\xA5W[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07\x86\x85\x82Ta\n\x88V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07\xAE\x91a\n\x88V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U\x8A\x80\x85a\x07nV[\x83\x824a\x01CW6`\x03\x19\x01\x12a\x01>W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x91\x904a\x01CW\x81`\x03\x196\x01\x12a\x01>W` \x92a\x08\x04a\nWV[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[\x83\x824a\x08\xFCW\x80`\x03\x196\x01\x12a\x01>W\x81Q\x90\x80\x80T\x90a\x08x\x82a\t\x9CV[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x0BWP`\x01\x14a\x08\xA5Wa\x04\xAF\x86\x88a\x04\xA5\x82\x89\x03\x83a\t\xD6V[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\xE9WPPPP\x81\x01` \x01a\x04\xA5\x82a\x04\xAF\x86a\x04\x94V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08\xCCV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\t\xCCW[` \x83\x10\x14a\t\xB6WV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\t\xABV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\xF8W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\nCWPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\n!V[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\nmWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\nmWV[\x91\x90\x82\x03\x91\x82\x11a\n\x95WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\xF9WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\x0B\t\x82a\t\x9CV[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0C4WPP`\x01\x14a\x0B\xDBW[Pa\x0B<\x92P\x03\x82a\t\xD6V[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0B\xC7WP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0C\x1CWPPa\x0B<\x93P\x82\x01\x018a\x0B/V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0C\x05V[`\xFF\x19\x16\x88Ra\x0B<\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0B/\x90PV\xFE\xA2dipfsX\"\x12 9\xCB\xCE\xE6%\xF8\xF3\xB6\x93\xE4c\x7F\xBAI\t\xE4\xE5\xDAm=\xBF\x83]<\x13\x12<\xFA\xD3\xEA\xE7\x9BdsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static ARBITERTOKEN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`@`\x80\x81R`\x04\x806\x10\x15a\0pW[` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x08VW\x80c\t^\xA7\xB3\x14a\x07\xE6W\x80c\x18\x16\r\xDD\x14a\x07\xC8W\x80c#\xB8r\xDD\x14a\x06\xF4W\x80c1<\xE5g\x14a\x06\xB7W\x80c6D\xE5\x15\x14a\x06\x94W\x80c@\xC1\x0F\x19\x14a\x05\xA8W\x80cp\xA0\x821\x14a\x05pW\x80c~\xCE\xBE\0\x14a\x058W\x80c\x95\xD8\x9BA\x14a\x04UW\x80c\xA9\x05\x9C\xBB\x14a\x03\xD1W\x80c\xD5\x05\xAC\xCF\x14a\x01\x92W\x80c\xDDb\xED>\x14a\x01HWc\xF8Q\xA4@\x14a\x01\x16WPa\0\x10V[\x90P4a\x01CW6`\x03\x19\x01\x12a\x01>W`\x06T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\tLV[a\x08\xFCV[P\x91\x904a\x01CW\x81`\x03\x196\x01\x12a\x01>W` \x92\x82\x91a\x01ha\nWV[a\x01pa\nrV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01CW`\xE06`\x03\x19\x01\x12a\x01>Wa\x01\xADa\nWV[\x90a\x01\xB6a\nrV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xCDWB\x85\x10a\x03\x8AWa\x01\xDCa\n\xABV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03vW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03cW\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03YW\x86Q\x16\x96\x87\x15\x15\x80a\x03PW[\x15a\x03\x1EW\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xDBV[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x824a\x01CW\x80`\x03\x196\x01\x12a\x01>W` \x91a\x03\xEEa\nWV[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04\x08\x84\x82Ta\n\x88V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x85\x90\xA3Q`\x01\x81R\xF3[\x83\x824a\x01CW\x80`\x03\x196\x01\x12a\x01>W\x81Q\x90\x80`\x01\x80T\x90a\x04y\x82a\t\x9CV[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x0BWP`\x01\x14a\x04\xB3W[a\x04\xAF\x86\x88a\x04\xA5\x82\x89\x03\x83a\t\xD6V[Q\x91\x82\x91\x82a\n\x0EV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x04\xF8WPPPP\x81\x01` \x01a\x04\xA5\x82a\x04\xAF\x86a\x04\x94V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x04\xDBV[\x90Pa\x04\xAF\x97\x95P\x86\x93P` \x92Pa\x04\xA5\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\x94V[P\x824a\x01CW` 6`\x03\x19\x01\x12a\x01>W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05`a\nWV[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01CW` 6`\x03\x19\x01\x12a\x01>W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x98a\nWV[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x82\x904a\x01CW\x81`\x03\x196\x01\x12a\x01>Wa\x05\xC3a\nWV[`\x06T`$5\x92\x91`\x01`\x01`\xA0\x1B\x03\x91\x82\x163\x03a\x06GW`\x02T\x84\x81\x01\x80\x91\x11a\x064W` \x96P\x91\x86\x91\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x93`\x02U\x16\x93\x84\x84R`\x03\x82R\x85\x84 \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[cNH{q`\xE0\x1B\x84R`\x11\x87R`$\x84\xFD[\x84QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x88\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[\x83\x824a\x01CW6`\x03\x19\x01\x12a\x01>W` \x90a\x06\xB0a\n\xABV[\x90Q\x90\x81R\xF3[\x83\x824a\x01CW6`\x03\x19\x01\x12a\x01>W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P\x82\x904a\x01CW``6`\x03\x19\x01\x12a\x01>Wa\x07\x10a\nWV[\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEFa\x079a\nrV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07\xA5W[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07\x86\x85\x82Ta\n\x88V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07\xAE\x91a\n\x88V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U\x8A\x80\x85a\x07nV[\x83\x824a\x01CW6`\x03\x19\x01\x12a\x01>W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x91\x904a\x01CW\x81`\x03\x196\x01\x12a\x01>W` \x92a\x08\x04a\nWV[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[\x83\x824a\x08\xFCW\x80`\x03\x196\x01\x12a\x01>W\x81Q\x90\x80\x80T\x90a\x08x\x82a\t\x9CV[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x0BWP`\x01\x14a\x08\xA5Wa\x04\xAF\x86\x88a\x04\xA5\x82\x89\x03\x83a\t\xD6V[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\xE9WPPPP\x81\x01` \x01a\x04\xA5\x82a\x04\xAF\x86a\x04\x94V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08\xCCV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\t\xCCW[` \x83\x10\x14a\t\xB6WV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\t\xABV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\xF8W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\nCWPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\n!V[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\nmWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\nmWV[\x91\x90\x82\x03\x91\x82\x11a\n\x95WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\xF9WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\x0B\t\x82a\t\x9CV[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0C4WPP`\x01\x14a\x0B\xDBW[Pa\x0B<\x92P\x03\x82a\t\xD6V[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0B\xC7WP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0C\x1CWPPa\x0B<\x93P\x82\x01\x018a\x0B/V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0C\x05V[`\xFF\x19\x16\x88Ra\x0B<\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0B/\x90PV\xFE\xA2dipfsX\"\x12 9\xCB\xCE\xE6%\xF8\xF3\xB6\x93\xE4c\x7F\xBAI\t\xE4\xE5\xDAm=\xBF\x83]<\x13\x12<\xFA\xD3\xEA\xE7\x9BdsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static ARBITERTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct ArbiterToken(::ethers::contract::Contract); - impl ::core::clone::Clone for ArbiterToken { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for ArbiterToken { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for ArbiterToken { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for ArbiterToken { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(ArbiterToken)) - .field(&self.address()) - .finish() - } - } - impl ArbiterToken { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - ARBITERTOKEN_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ARBITERTOKEN_ABI.clone(), - ARBITERTOKEN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `admin` (0xf851a440) function - pub fn admin( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([248, 81, 164, 64], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - receiver: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (receiver, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ArbiterTokenEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for ArbiterToken { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum ArbiterTokenEvents { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for ArbiterTokenEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(ArbiterTokenEvents::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(ArbiterTokenEvents::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for ArbiterTokenEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ArbiterTokenEvents { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for ArbiterTokenEvents { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `admin` function with signature `admin()` and selector `0xf851a440` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "admin", abi = "admin()")] - pub struct AdminCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub receiver: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum ArbiterTokenCalls { - DomainSeparator(DomainSeparatorCall), - Admin(AdminCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Decimals(DecimalsCall), - Mint(MintCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for ArbiterTokenCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Admin(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ArbiterTokenCalls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Admin(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for ArbiterTokenCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Admin(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: AdminCall) -> Self { - Self::Admin(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `admin` function with signature `admin()` and selector `0xf851a440` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AdminReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MintReturn(pub bool); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/atomic_v2.rs b/crates/bindings/src/atomic_v2.rs deleted file mode 100644 index cf05bb11b..000000000 --- a/crates/bindings/src/atomic_v2.rs +++ /dev/null @@ -1,3055 +0,0 @@ -pub use atomic_v2::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod atomic_v2 { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("solverAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("exchangeAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("liquidExchangeAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("assetAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("quoteAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("XTOY"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("XTOY"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("YTOX"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("YTOX"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("asset"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("asset"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("cdf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("cdf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("input"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("output"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("cumulativeProfit"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("cumulativeProfit"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("divWadDown"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("divWadDown"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("divWadUp"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("divWadUp"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("exchange"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("exchange"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("intermediateTokenXBalance"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "intermediateTokenXBalance", - ), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("intermediateTokenYEndBalance"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "intermediateTokenYEndBalance", - ), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("intermediateTokenYStartBalance"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "intermediateTokenYStartBalance", - ), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("liquidExchange"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("liquidExchange"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("log"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("lower_exchange_price"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "lower_exchange_price", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("input"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("mulWadDown"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("mulWadDown"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("mulWadUp"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("mulWadUp"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("pdf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("pdf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("input"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("output"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("ppf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("ppf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("input"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("output"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("quote"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("quote"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("raise_exchange_price"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "raise_exchange_price", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("input"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("simulateSwap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("simulateSwap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("swapXIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("estimatedOut"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("estimatedPrice"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("payload"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("solver"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("solver"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("sqrt"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("sqrt"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("z"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Loss"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Loss"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("loss"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Price"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Price"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("price"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("timestamp"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Profit"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Profit"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("profit"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AttemptedProfit"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("AttemptedProfit"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("profit"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("DexSwapFailure"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("DexSwapFailure"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reason"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("err"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Infinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Infinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InsufficientApprovalY"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "InsufficientApprovalY", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("allowance"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("payment"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InsufficientBalanceX"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "InsufficientBalanceX", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("balance"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("payment"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InsufficientBalanceY"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "InsufficientBalanceY", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("balance"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("payment"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Min"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Min"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("OutOfBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("OutOfBounds"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("SimulatedSwapFailure"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "SimulatedSwapFailure", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("estimatedOut"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("estimatedPrice"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("payload"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("UnprofitableArbitrage"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "UnprofitableArbitrage", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("start_y_balance"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("end_y_balance"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "absolute_difference", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static ATOMICV2_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@\x90\x80\x82R4b\0\x01YWP\x80Q`\x1Fb\0#/8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17b\0\x01CW\x80\x84\x92`\xA0\x94\x87R\x839\x81\x01\x03\x12b\0\0\xF4Wb\0\0U\x81b\0\x01\xA6V[\x90b\0\0d` \x82\x01b\0\x01\xA6V[\x90b\0\0r\x84\x82\x01b\0\x01\xA6V[\x91b\0\0\x8F`\x80b\0\0\x87``\x85\x01b\0\x01\xA6V[\x93\x01b\0\x01\xA6V[\x91`\x01a\xFF\xFF\x19`\tT\x16\x17`\tU`\x01\x80`\xA0\x1B\x03\x80\x94\x81\x80\x94\x81`\x01\x80`\xA0\x1B\x03\x19\x99\x16\x89`\x02T\x16\x17`\x02U\x16\x87`\x01T\x16\x17`\x01U\x16\x85`\0T\x16\x17`\0U\x16\x83`\x03T\x16\x17`\x03U\x16\x90`\x04T\x16\x17`\x04UQa!n\x90\x81b\0\x01\xC1\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0\x01\xBBWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\t\xF2W`\x005`\xE0\x1C\x80c-[l\xB9\x14a\x01|W\x80c6yr:\x14a\x01wW\x80c7\xC6\xA4J\x14a\x01rW\x80c8\xD5.\x0F\x14a\x01mW\x80c9(\xFF\x97\x14a\x01hW\x80cI\xA7\xA2m\x14a\x01cW\x80cdI\xFCW\x14a\x01^W\x80cgsB\xCE\x14a\x01YW\x80cr\xB9\x82F\x14a\x01TW\x80c\x85\xB3\x19\xFF\x14a\x01OW\x80c\x93e \xC3\x14a\x01JW\x80c\x96\xFB\xEE\x1D\x14a\x01EW\x80c\x99\x9B\x93\xAF\x14a\x01@W\x80c\x9F'\xEFO\x14a\x01;W\x80c\xAE\x97h\xA8\x14a\x016W\x80c\xBD%-\x06\x14a\x011W\x80c\xD0\xB7\x1B\x1E\x14a\x01,W\x80c\xD2L\xE6\xE5\x14a\x01'W\x80c\xD2\xF7&Z\x14a\x01\"W\x80c\xE5$\xF8I\x14a\x01\x1DW\x80c\xF3\xC9s\xCF\x14a\x01\x18W\x80c\xF9\0^\xB5\x14a\x01\x13Wc\xFA.Y\x94\x03a\t\xF2Wa\t\xD4V[a\x08\x93V[a\x08pV[a\x080V[a\x08\x07V[a\x07\xAAV[a\x07cV[a\x07\x16V[a\x06\xCAV[a\x06\xA1V[a\x06xV[a\x04\xF5V[a\x04\xD7V[a\x04\xB9V[a\x04\x9BV[a\x04}V[a\x04WV[a\x04.V[a\x03jV[a\x02\xC7V[a\x02uV[a\x02]V[a\x028V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[` \x90`\x03\x19\x01\x12a\x023W`\x045\x90V[a\x01\xD1V[4a\x02XW` a\x02Pa\x02K6a\x02!V[a\x0C\xE0V[`@Q\x90\x81R\xF3[a\x01\x81V[4a\x02XW` a\x02Pa\x02p6a\x02!V[a\x0E\xFFV[4a\x02XW`@6`\x03\x19\x01\x12a\x023W`\x045`$5\x90g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x02\xB7W` \x91`@Q\x91\x04\x81R\xF3[`\0\x80\xFD[`\0\x91\x03\x12a\x023WV[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W`\x03T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[\x80\x15\x15\x03a\x02\xB7WV[`\0[\x83\x81\x10a\x03\rWPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01a\x02\xFDV[\x90` \x91a\x036\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01a\x02\xFAV[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90\x92`\x80\x92a\x03g\x95\x94\x15\x15\x83R` \x83\x01R`@\x82\x01R\x81``\x82\x01R\x01\x90a\x03\x1DV[\x90V[4a\x02XW``6`\x03\x19\x01\x12a\x023W`$5a\x03\x87\x81a\x02\xF0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81;\x15a\x04)W`@Qc9(\xFF\x97`\xE0\x1B\x81R`\x04\x805\x90\x82\x01R\x90\x15\x15`$\x82\x01R`D\x805\x90\x82\x01R\x90`\0\x90\x81\x90\x83\x90`d\x90\x82\x90Z\xFA\x80\x15a\x04$W\x81\x80\x93\x81\x80\x93a\x03\xF7W[PP\x90a\x03\xF3\x91`@Q\x94\x85\x94\x85a\x03BV[\x03\x90\xF3[\x91P\x91Pa\x03\xF3\x93Pa\x04\x1C\x92P=\x80\x91\x83>a\x04\x14\x81\x83a\n\xD7V[\x81\x01\x90a\x0B\x15V[\x91\x938a\x03\xE0V[a\x0C\x8DV[a\nUV[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W` `\xFF`\tT`\x08\x1C\x16`@Q\x90\x15\x15\x81R\xF3[4a\x02XW` 6`\x03\x19\x01\x12a\x023W` a\x02P`\x045a\x10\xD2V[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W` `\x07T`@Q\x90\x81R\xF3[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W` `\x08T`@Q\x90\x81R\xF3[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W` `\x05T`@Q\x90\x81R\xF3[4a\x02XW`@6`\x03\x19\x01\x12a\x023W`\x02T`$5\x90`\x045\x90a\x051\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x04)W`@Qc\x03\xB4\xD1\x03`\xE4\x1B\x81R`\x04\x81\x01\x83\x90R` \x93\x90\x91\x84\x90\x83\x90`$\x90\x82\x90Z\xFA\x80\x15a\x04$Wa\x05\xAA\x7F\xD15=\x90\xFD[\x90\x81` \x91\x03\x12a\x023WQ\x90V[\x15a\x0C\xAFWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x90a\r\x0C`\0\x82\x13a\x0C\xA8V[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\r(\x82a\x1A\xF0V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1D\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x08\x02WV[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x08\x02WV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\x08\x02W`\0\x19\x83\x05\x03a\x08\x02WV[`\x01`\xFF\x1B\x81\x14a\x08\x02W`\0\x03\x90V[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a\x10\xCCWg\r\xE0\xB6\xB3\xA7d\0\0\x80\x82\x12\x15a\x10vW\x81\x15a\x10\x97W`\x01\x82`\x01\x1B\x91`\x02\x93\x83\x05`\x02\x03a\x08\x02W`\0\x83\x12\x80\x15a\x10\xBBW[a\x10\xA9W\x82\x15a\x10vWg\x1B\xC1mgN\xC8\0\0\x83\x14a\x10\x97W\x82\x12\x91\x82\x15a\x10\x88W\x92[a\x0Fp\x84a\x1F\x87V[\x80\x15a\x10vWa\x0F\xE2a\x0F\xA1a\x0F\x9Ca\x0F\x97a\x0F\x92a\x0F\xE7\x95\x99\x97\x96\x99a\x0C\xE0V[a HV[a\x10\xD2V[a\x0E\xB4V[a\x0F\xDDa\x0F\xB5a\x0F\xB0\x83a\x1F\xB2V[a\x1BbV[a\x0F\xD7a\x0F\xD2a\x0F\xCCa\x0F\xC7\x86a\x1F\xDDV[a\x1BzV[\x85a \xBFV[a\x1B\x92V[\x90a &V[a\x190V[a pV[\x93`\0\x92[\x81\x84\x10a\x10\x1EWPPPPa\x03g\x91a\x10\x0B\x91`\0\x14a\x10\x10Wa\x1F`V[a\x0E\xEEV[a\x10\x19\x90a\x0E\xEEV[a\x1F`V[\x90\x91a\x10l\x86a\x10fa\x106\x85a\x0F\xDD\x86\x99\x9Ba\x1C\xB7V[a\x0F\xD7a\x10Va\x10Qa\x10La\x10\x0B\x87\x80a \xBFV[a\x1D\xDCV[a \x98V[a\x10`\x83\x86a \xBFV[\x90a\x190V[\x90a\x1CpV[\x95\x01\x92\x91\x90a\x0F\xECV[`@Qc\x07\xA0!'`\xE0\x1B\x81R`\x04\x90\xFD[a\x10\x91\x90a\x18\xF4V[\x92a\x0FgV[`@Qc\"\xEDY\x85`\xE2\x1B\x81R`\x04\x90\xFD[`@Qc-\x04\x83\xC5`\xE2\x1B\x81R`\x04\x90\xFD[Pg\x1B\xC1mgN\xC8\0\0\x83\x13a\x0FCV[P`\0\x90V[`\xB5\x81`\x01`\x88\x1B\x81\x10\x15a\x11yW[\x80i\x01\0\0\0\0\0\0\0\0\0b\x01\0\0\x92\x10\x15a\x11lW[e\x01\0\0\0\0\0\x81\x10\x15a\x11_W[c\x01\0\0\0\x81\x10\x15a\x11RW[\x01\x02`\x12\x1C`\x01\x90\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x90\x1C\x80\x80\x92\x04\x10\x90\x03\x90V[`\x10\x1C\x91`\x08\x1B\x91a\x11\x16V[` \x1C\x91`\x10\x1B\x91a\x11\tV[`@\x1C\x91` \x1B\x91a\x10\xFAV[Ph\xB5\0\0\0\0\0\0\0\0\x90P`\x80\x82\x90\x1Ca\x10\xE2V[`\x04\x80Ta\x11\xA8\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x90\x81;\x15a\x04)W`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R3\x82\x85\x01\x90\x81R` \x96\x91\x95\x93\x94\x93\x91\x92\x90\x87\x90\x82\x90\x81\x90\x83\x01\x03\x81\x85Z\xFA\x90\x81\x15a\x04$W`\0\x91a\x13tW[P\x82\x81\x10a\x13QWP\x80;\x15a\x04)W\x83Qcn\xB1v\x9F`\xE1\x1B\x81R3\x84\x82\x01\x90\x81R0` \x82\x01R\x87\x90\x82\x90\x81\x90`@\x01\x03\x81\x85Z\xFA\x90\x81\x15a\x04$W`\0\x91a\x134W[P\x82\x81\x10a\x13\rWP\x80;\x15a\x04)W\x83Qc#\xB8r\xDD`\xE0\x1B\x81R3\x84\x82\x01\x90\x81R0` \x82\x01R`@\x81\x01\x93\x90\x93R\x91`\0\x91\x83\x91\x82\x90\x84\x90\x82\x90``\x01\x03\x92Z\xF1\x80\x15a\x04$Wa\x12\xF4W[P\x80Ta\x12\x99\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x04)W\x91Q\x92\x83R0\x90\x83\x01\x90\x81R\x83\x91\x83\x91\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x90\x81\x15a\x04$Wa\x12\xD5\x92`\0\x92a\x12\xD7W[PP`\x06UV[V[a\x12\xED\x92P\x80=\x10a\x06TWa\x06D\x81\x83a\n\xD7V[8\x80a\x12\xCEV[\x80a\x13\x01a\x13\x07\x92a\n\xBEV[\x80a\x02\xBCV[8a\x12\x82V[\x84Qc\xDAV\xD3\xC5`\xE0\x1B\x81R\x80\x85\x01\x91\x82R` \x82\x01\x84\x90R\x90\x81\x90`@\x01\x03\x90\xFD[\x03\x90\xFD[a\x13K\x91P\x87=\x89\x11a\x06TWa\x06D\x81\x83a\n\xD7V[8a\x123V[\x84Qc\n\xBEZ\x89`\xE0\x1B\x81R\x80\x85\x01\x91\x82R` \x82\x01\x84\x90R\x90\x81\x90`@\x01\x03\x90\xFD[a\x13\x8B\x91P\x87=\x89\x11a\x06TWa\x06D\x81\x83a\n\xD7V[8a\x11\xEDV[\x15a\x14\x8CW`\x03Ta\x13\xAD\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\0\x80T\x90\x91\x90`\x01`\x01`\xA0\x1B\x03\x16\x90\x80;\x15a\x04)W`@Qc\t^\xA7\xB3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x82\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x14yW[P\x80Ta\x14\x19\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x03T`\x01`\x01`\xA0\x1B\x03\x16\x92\x90\x80;\x15a\x04)W`@Qc\xD0\x04\xF0\xF7`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x94\x90\x94\x16`\x04\x85\x01R`$\x84\x01\x91\x90\x91R\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x14lWPV[\x80a\x13\x01a\x12\xD5\x92a\n\xBEV[\x80a\x13\x01a\x14\x86\x92a\n\xBEV[8a\x14\x02V[`\x04Ta\x14\xA3\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\0\x80T\x90\x92\x91\x90`\x01`\x01`\xA0\x1B\x03\x16\x90\x80;\x15a\x04)W`@Qc\t^\xA7\xB3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`\x04\x83\x01R`$\x82\x01\x83\x90R\x83\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x15\xEBW[P\x81Ta\x15\x10\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x04T\x90\x91\x90`\x01`\x01`\xA0\x1B\x03\x16\x90\x82;\x15a\x04)W`@Qc\xD0\x04\xF0\xF7`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`\x04\x83\x01R`$\x82\x01R\x90\x82\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x15\xD8W[P`\x03Ta\x15{\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x04)W`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01R\x90` \x90\x82\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x04$Wa\x12\xD5\x92\x91a\x15\xB9W[P`\x05UV[a\x15\xD2\x91P` =` \x11a\x06TWa\x06D\x81\x83a\n\xD7V[8a\x15\xB3V[\x80a\x13\x01a\x15\xE5\x92a\n\xBEV[8a\x15cV[\x80a\x13\x01a\x15\xF8\x92a\n\xBEV[8a\x14\xF9V[`@\x90a\x03g\x93\x92\x81R\x81` \x82\x01R\x01\x90a\x03\x1DV[=\x15a\x16@W=\x90a\x16&\x82a\n\xF9V[\x91a\x164`@Q\x93\x84a\n\xD7V[\x82R=`\0` \x84\x01>V[``\x90V[\x90`\x80a\x03g\x92`@\x81R`\x19`@\x82\x01R\x7FDEX swap failed with data\0\0\0\0\0\0\0``\x82\x01R\x81` \x82\x01R\x01\x90a\x03\x1DV[\x81\x15a\x18eW`\x03Ta\x16\xA7\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90\x80;\x15a\x04)W`@Qc\t^\xA7\xB3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`\x04\x83\x01R`$\x82\x01\x85\x90R`\0\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x18RW[P[`\x02Ta\x17\x12\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x90\x81;\x15a\x04)W`@Qc9(\xFF\x97`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R\x83\x15\x15`$\x82\x01R`D\x81\x01\x94\x90\x94R`\0\x93\x91\x84\x90\x83\x90`d\x90\x82\x90Z\xFA\x91\x82\x15a\x04$W\x84\x85\x91\x86\x90\x87\x95a\x180W[P\x81\x15a\x18\x12WPP`\x01Ta\x17\x81\x91Pa\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x91\x82;\x15a\x04)Wa\x17\xAC\x92\x85\x92\x83`@Q\x80\x96\x81\x95\x82\x94c\xBD\x06%\xAB`\xE0\x1B\x84R`\x04\x84\x01a\x15\xFEV[\x03\x92Z\xF1\x90\x81a\x17\xFFW[Pa\x17\xE0Wa\x130a\x17\xC7a\x16\x15V[`@Qcg\xA1k\x8D`\xE1\x1B\x81R\x91\x82\x91`\x04\x83\x01a\x16EV[\x15a\x17\xE8WPV[`\x03Ta\x15{\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80a\x13\x01a\x18\x0C\x92a\n\xBEV[8a\x17\xB7V[\x84a\x130\x91`@Q\x94\x85\x94c\x03\x14\xE6#`\xE3\x1B\x86R`\x04\x86\x01a\x03BV[\x92PPPa\x18I\x91\x92P=\x80\x86\x83>a\x04\x14\x81\x83a\n\xD7V[\x93\x92\x908a\x17`V[\x80a\x13\x01a\x18_\x92a\n\xBEV[8a\x16\xF9V[`\x04Ta\x18|\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90\x80;\x15a\x04)W`@Qc\t^\xA7\xB3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`\x04\x83\x01R`$\x82\x01\x85\x90R`\0\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x18\xD4W[Pa\x16\xFBV[\x80a\x13\x01a\x18\xE1\x92a\n\xBEV[8a\x18\xCEV[\x91\x90\x82\x03\x91\x82\x11a\x08\x02WV[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x08\x02WV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\x08\x02WV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x08\x02WV[\x91\x90\x82\x01\x80\x92\x11a\x08\x02WV[`\x04Ta\x19m\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x04)W`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01R\x90` \x90\x82\x90`$\x90\x82\x90Z\xFA\x80\x15a\x04$Wa\x19\xAC\x91`\0\x91a\x1A\xD1W[P`\x07UV[`\x07T`\x06T\x90\x81\x81\x10a\x1AgWa\x19\xE8\x7F5}\x90_\x181 \x97\x97\xDFMU\xD7\x9C\\[\xF1\xD9\xF71\x1C\x97j\xFD\x05\xE1=\x88\x1E\xAB\x9B\xC8\x92a\x1A\x0C\x92a\x18\xE7V[a\x19\xFCa\x19\xF7\x82`\x08Ta\x19IV[`\x08UV[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[\x03\x90\xA1`\x04Ta\x1A&\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x07T\x90\x80;\x15a\x04)W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x14lWPV[\x90\x7F\xB6[.\x08]}\x04\x0C1?}N\x1A\xC9\x0FY7\x02o\xEEI~\x0E$\xA7\xEF\xF1jU\xE1\xC5\xEAa\x1A\x96a\x19\xFC\x84\x84a\x18\xE7V[\x03\x90\xA1a\x130a\x1A\xA6\x83\x83a\x190V[\x19`@Q\x93\x84\x93c\xB1n7\x83`\xE0\x1B\x85R`\x04\x85\x01`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[a\x1A\xEA\x91P` =` \x11a\x06TWa\x06D\x81\x83a\n\xD7V[8a\x19\xA6V[a\x1A\xFB\x81\x15\x15a\x0C\xA8V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x08\x02WV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x08\x02WV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x08\x02WV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\x08\x02WV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\x1B\xC1mgN\xC8\0\0\x90\x04\x90V[\x80\x15a\x1D\xCFWgV\x98\xEE\xF0fp\0\0\x81\x12\x15a\x10\xCCWgV\x98\xEE\xF0fo\xFF\xFF\x19\x81\x13\x15a\x1D\xC2W`\0a\x1D\xB2a\x1C\xEC\x83a!\x0BV[a\x1Dua\x10La\x1D\x06a\x1D\x01a\x0F\xD2\x85a\x1C\x8CV[a \x07V[\x92a\x1D\xADa\x1D\xA8a\x1D\xA3a\x1D\x9Ca\x1D\x96a\x1D\x91a\x1D\x8Ba\x1D\x86a\x1D\x80a\x1D{\x8Da\x1Dua\x1Dpa\x1Dja\x1Dea\x0F\xCCa\x1D`a\x1DZa\x1DUa\x1DOa\x1DJ\x8Aa \xE0V[a\x1B\xAAV[\x89a \xBFV[a\x1B\xC4V[\x87a \xBFV[a\x1B\xDCV[a\x1B\xF6V[\x83a \xBFV[a\x1C\x0EV[\x90a \xBFV[a\x1C(V[\x8Ca \xBFV[a\x1C@V[\x8Aa \xBFV[a\x1CXV[\x88a \xBFV[\x93\x80a \xBFV[a\x0E\xCDV[a\x19\x17V[a\x1CpV[\x91\x12\x15a\x03gWa\x03g\x90a\x18\xF4V[Pg\x1B\xC1mgN\xC8\0\0\x90V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x90V[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a\x10\xCCWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x1F,We\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x02\xB7Wn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x02\xB7W\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01`\xFF\x1B\x81\x14a!&W`\0\x81\x12\x15a\x03gW\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD\xFE\xA2dipfsX\"\x12 \xC4\x04\x92l\xBA\xD6>[A\x05\x163\x1C\xCE.\x1AQ\xD8%C\x0C\x1A\x02\xB9?\xCD\x89\x86\x9D7\xFCbdsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static ATOMICV2_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\t\xF2W`\x005`\xE0\x1C\x80c-[l\xB9\x14a\x01|W\x80c6yr:\x14a\x01wW\x80c7\xC6\xA4J\x14a\x01rW\x80c8\xD5.\x0F\x14a\x01mW\x80c9(\xFF\x97\x14a\x01hW\x80cI\xA7\xA2m\x14a\x01cW\x80cdI\xFCW\x14a\x01^W\x80cgsB\xCE\x14a\x01YW\x80cr\xB9\x82F\x14a\x01TW\x80c\x85\xB3\x19\xFF\x14a\x01OW\x80c\x93e \xC3\x14a\x01JW\x80c\x96\xFB\xEE\x1D\x14a\x01EW\x80c\x99\x9B\x93\xAF\x14a\x01@W\x80c\x9F'\xEFO\x14a\x01;W\x80c\xAE\x97h\xA8\x14a\x016W\x80c\xBD%-\x06\x14a\x011W\x80c\xD0\xB7\x1B\x1E\x14a\x01,W\x80c\xD2L\xE6\xE5\x14a\x01'W\x80c\xD2\xF7&Z\x14a\x01\"W\x80c\xE5$\xF8I\x14a\x01\x1DW\x80c\xF3\xC9s\xCF\x14a\x01\x18W\x80c\xF9\0^\xB5\x14a\x01\x13Wc\xFA.Y\x94\x03a\t\xF2Wa\t\xD4V[a\x08\x93V[a\x08pV[a\x080V[a\x08\x07V[a\x07\xAAV[a\x07cV[a\x07\x16V[a\x06\xCAV[a\x06\xA1V[a\x06xV[a\x04\xF5V[a\x04\xD7V[a\x04\xB9V[a\x04\x9BV[a\x04}V[a\x04WV[a\x04.V[a\x03jV[a\x02\xC7V[a\x02uV[a\x02]V[a\x028V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[` \x90`\x03\x19\x01\x12a\x023W`\x045\x90V[a\x01\xD1V[4a\x02XW` a\x02Pa\x02K6a\x02!V[a\x0C\xE0V[`@Q\x90\x81R\xF3[a\x01\x81V[4a\x02XW` a\x02Pa\x02p6a\x02!V[a\x0E\xFFV[4a\x02XW`@6`\x03\x19\x01\x12a\x023W`\x045`$5\x90g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x02\xB7W` \x91`@Q\x91\x04\x81R\xF3[`\0\x80\xFD[`\0\x91\x03\x12a\x023WV[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W`\x03T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[\x80\x15\x15\x03a\x02\xB7WV[`\0[\x83\x81\x10a\x03\rWPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01a\x02\xFDV[\x90` \x91a\x036\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01a\x02\xFAV[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90\x92`\x80\x92a\x03g\x95\x94\x15\x15\x83R` \x83\x01R`@\x82\x01R\x81``\x82\x01R\x01\x90a\x03\x1DV[\x90V[4a\x02XW``6`\x03\x19\x01\x12a\x023W`$5a\x03\x87\x81a\x02\xF0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81;\x15a\x04)W`@Qc9(\xFF\x97`\xE0\x1B\x81R`\x04\x805\x90\x82\x01R\x90\x15\x15`$\x82\x01R`D\x805\x90\x82\x01R\x90`\0\x90\x81\x90\x83\x90`d\x90\x82\x90Z\xFA\x80\x15a\x04$W\x81\x80\x93\x81\x80\x93a\x03\xF7W[PP\x90a\x03\xF3\x91`@Q\x94\x85\x94\x85a\x03BV[\x03\x90\xF3[\x91P\x91Pa\x03\xF3\x93Pa\x04\x1C\x92P=\x80\x91\x83>a\x04\x14\x81\x83a\n\xD7V[\x81\x01\x90a\x0B\x15V[\x91\x938a\x03\xE0V[a\x0C\x8DV[a\nUV[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W` `\xFF`\tT`\x08\x1C\x16`@Q\x90\x15\x15\x81R\xF3[4a\x02XW` 6`\x03\x19\x01\x12a\x023W` a\x02P`\x045a\x10\xD2V[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W` `\x07T`@Q\x90\x81R\xF3[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W` `\x08T`@Q\x90\x81R\xF3[4a\x02XW`\x006`\x03\x19\x01\x12a\x023W` `\x05T`@Q\x90\x81R\xF3[4a\x02XW`@6`\x03\x19\x01\x12a\x023W`\x02T`$5\x90`\x045\x90a\x051\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x04)W`@Qc\x03\xB4\xD1\x03`\xE4\x1B\x81R`\x04\x81\x01\x83\x90R` \x93\x90\x91\x84\x90\x83\x90`$\x90\x82\x90Z\xFA\x80\x15a\x04$Wa\x05\xAA\x7F\xD15=\x90\xFD[\x90\x81` \x91\x03\x12a\x023WQ\x90V[\x15a\x0C\xAFWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x90a\r\x0C`\0\x82\x13a\x0C\xA8V[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\r(\x82a\x1A\xF0V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1D\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x08\x02WV[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x08\x02WV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\x08\x02W`\0\x19\x83\x05\x03a\x08\x02WV[`\x01`\xFF\x1B\x81\x14a\x08\x02W`\0\x03\x90V[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a\x10\xCCWg\r\xE0\xB6\xB3\xA7d\0\0\x80\x82\x12\x15a\x10vW\x81\x15a\x10\x97W`\x01\x82`\x01\x1B\x91`\x02\x93\x83\x05`\x02\x03a\x08\x02W`\0\x83\x12\x80\x15a\x10\xBBW[a\x10\xA9W\x82\x15a\x10vWg\x1B\xC1mgN\xC8\0\0\x83\x14a\x10\x97W\x82\x12\x91\x82\x15a\x10\x88W\x92[a\x0Fp\x84a\x1F\x87V[\x80\x15a\x10vWa\x0F\xE2a\x0F\xA1a\x0F\x9Ca\x0F\x97a\x0F\x92a\x0F\xE7\x95\x99\x97\x96\x99a\x0C\xE0V[a HV[a\x10\xD2V[a\x0E\xB4V[a\x0F\xDDa\x0F\xB5a\x0F\xB0\x83a\x1F\xB2V[a\x1BbV[a\x0F\xD7a\x0F\xD2a\x0F\xCCa\x0F\xC7\x86a\x1F\xDDV[a\x1BzV[\x85a \xBFV[a\x1B\x92V[\x90a &V[a\x190V[a pV[\x93`\0\x92[\x81\x84\x10a\x10\x1EWPPPPa\x03g\x91a\x10\x0B\x91`\0\x14a\x10\x10Wa\x1F`V[a\x0E\xEEV[a\x10\x19\x90a\x0E\xEEV[a\x1F`V[\x90\x91a\x10l\x86a\x10fa\x106\x85a\x0F\xDD\x86\x99\x9Ba\x1C\xB7V[a\x0F\xD7a\x10Va\x10Qa\x10La\x10\x0B\x87\x80a \xBFV[a\x1D\xDCV[a \x98V[a\x10`\x83\x86a \xBFV[\x90a\x190V[\x90a\x1CpV[\x95\x01\x92\x91\x90a\x0F\xECV[`@Qc\x07\xA0!'`\xE0\x1B\x81R`\x04\x90\xFD[a\x10\x91\x90a\x18\xF4V[\x92a\x0FgV[`@Qc\"\xEDY\x85`\xE2\x1B\x81R`\x04\x90\xFD[`@Qc-\x04\x83\xC5`\xE2\x1B\x81R`\x04\x90\xFD[Pg\x1B\xC1mgN\xC8\0\0\x83\x13a\x0FCV[P`\0\x90V[`\xB5\x81`\x01`\x88\x1B\x81\x10\x15a\x11yW[\x80i\x01\0\0\0\0\0\0\0\0\0b\x01\0\0\x92\x10\x15a\x11lW[e\x01\0\0\0\0\0\x81\x10\x15a\x11_W[c\x01\0\0\0\x81\x10\x15a\x11RW[\x01\x02`\x12\x1C`\x01\x90\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x90\x1C\x80\x80\x92\x04\x10\x90\x03\x90V[`\x10\x1C\x91`\x08\x1B\x91a\x11\x16V[` \x1C\x91`\x10\x1B\x91a\x11\tV[`@\x1C\x91` \x1B\x91a\x10\xFAV[Ph\xB5\0\0\0\0\0\0\0\0\x90P`\x80\x82\x90\x1Ca\x10\xE2V[`\x04\x80Ta\x11\xA8\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x90\x81;\x15a\x04)W`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R3\x82\x85\x01\x90\x81R` \x96\x91\x95\x93\x94\x93\x91\x92\x90\x87\x90\x82\x90\x81\x90\x83\x01\x03\x81\x85Z\xFA\x90\x81\x15a\x04$W`\0\x91a\x13tW[P\x82\x81\x10a\x13QWP\x80;\x15a\x04)W\x83Qcn\xB1v\x9F`\xE1\x1B\x81R3\x84\x82\x01\x90\x81R0` \x82\x01R\x87\x90\x82\x90\x81\x90`@\x01\x03\x81\x85Z\xFA\x90\x81\x15a\x04$W`\0\x91a\x134W[P\x82\x81\x10a\x13\rWP\x80;\x15a\x04)W\x83Qc#\xB8r\xDD`\xE0\x1B\x81R3\x84\x82\x01\x90\x81R0` \x82\x01R`@\x81\x01\x93\x90\x93R\x91`\0\x91\x83\x91\x82\x90\x84\x90\x82\x90``\x01\x03\x92Z\xF1\x80\x15a\x04$Wa\x12\xF4W[P\x80Ta\x12\x99\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x04)W\x91Q\x92\x83R0\x90\x83\x01\x90\x81R\x83\x91\x83\x91\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x90\x81\x15a\x04$Wa\x12\xD5\x92`\0\x92a\x12\xD7W[PP`\x06UV[V[a\x12\xED\x92P\x80=\x10a\x06TWa\x06D\x81\x83a\n\xD7V[8\x80a\x12\xCEV[\x80a\x13\x01a\x13\x07\x92a\n\xBEV[\x80a\x02\xBCV[8a\x12\x82V[\x84Qc\xDAV\xD3\xC5`\xE0\x1B\x81R\x80\x85\x01\x91\x82R` \x82\x01\x84\x90R\x90\x81\x90`@\x01\x03\x90\xFD[\x03\x90\xFD[a\x13K\x91P\x87=\x89\x11a\x06TWa\x06D\x81\x83a\n\xD7V[8a\x123V[\x84Qc\n\xBEZ\x89`\xE0\x1B\x81R\x80\x85\x01\x91\x82R` \x82\x01\x84\x90R\x90\x81\x90`@\x01\x03\x90\xFD[a\x13\x8B\x91P\x87=\x89\x11a\x06TWa\x06D\x81\x83a\n\xD7V[8a\x11\xEDV[\x15a\x14\x8CW`\x03Ta\x13\xAD\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\0\x80T\x90\x91\x90`\x01`\x01`\xA0\x1B\x03\x16\x90\x80;\x15a\x04)W`@Qc\t^\xA7\xB3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x82\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x14yW[P\x80Ta\x14\x19\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x03T`\x01`\x01`\xA0\x1B\x03\x16\x92\x90\x80;\x15a\x04)W`@Qc\xD0\x04\xF0\xF7`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x94\x90\x94\x16`\x04\x85\x01R`$\x84\x01\x91\x90\x91R\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x14lWPV[\x80a\x13\x01a\x12\xD5\x92a\n\xBEV[\x80a\x13\x01a\x14\x86\x92a\n\xBEV[8a\x14\x02V[`\x04Ta\x14\xA3\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\0\x80T\x90\x92\x91\x90`\x01`\x01`\xA0\x1B\x03\x16\x90\x80;\x15a\x04)W`@Qc\t^\xA7\xB3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`\x04\x83\x01R`$\x82\x01\x83\x90R\x83\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x15\xEBW[P\x81Ta\x15\x10\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x04T\x90\x91\x90`\x01`\x01`\xA0\x1B\x03\x16\x90\x82;\x15a\x04)W`@Qc\xD0\x04\xF0\xF7`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`\x04\x83\x01R`$\x82\x01R\x90\x82\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x15\xD8W[P`\x03Ta\x15{\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x04)W`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01R\x90` \x90\x82\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x04$Wa\x12\xD5\x92\x91a\x15\xB9W[P`\x05UV[a\x15\xD2\x91P` =` \x11a\x06TWa\x06D\x81\x83a\n\xD7V[8a\x15\xB3V[\x80a\x13\x01a\x15\xE5\x92a\n\xBEV[8a\x15cV[\x80a\x13\x01a\x15\xF8\x92a\n\xBEV[8a\x14\xF9V[`@\x90a\x03g\x93\x92\x81R\x81` \x82\x01R\x01\x90a\x03\x1DV[=\x15a\x16@W=\x90a\x16&\x82a\n\xF9V[\x91a\x164`@Q\x93\x84a\n\xD7V[\x82R=`\0` \x84\x01>V[``\x90V[\x90`\x80a\x03g\x92`@\x81R`\x19`@\x82\x01R\x7FDEX swap failed with data\0\0\0\0\0\0\0``\x82\x01R\x81` \x82\x01R\x01\x90a\x03\x1DV[\x81\x15a\x18eW`\x03Ta\x16\xA7\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90\x80;\x15a\x04)W`@Qc\t^\xA7\xB3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`\x04\x83\x01R`$\x82\x01\x85\x90R`\0\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x18RW[P[`\x02Ta\x17\x12\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x90\x81;\x15a\x04)W`@Qc9(\xFF\x97`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R\x83\x15\x15`$\x82\x01R`D\x81\x01\x94\x90\x94R`\0\x93\x91\x84\x90\x83\x90`d\x90\x82\x90Z\xFA\x91\x82\x15a\x04$W\x84\x85\x91\x86\x90\x87\x95a\x180W[P\x81\x15a\x18\x12WPP`\x01Ta\x17\x81\x91Pa\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x91\x82;\x15a\x04)Wa\x17\xAC\x92\x85\x92\x83`@Q\x80\x96\x81\x95\x82\x94c\xBD\x06%\xAB`\xE0\x1B\x84R`\x04\x84\x01a\x15\xFEV[\x03\x92Z\xF1\x90\x81a\x17\xFFW[Pa\x17\xE0Wa\x130a\x17\xC7a\x16\x15V[`@Qcg\xA1k\x8D`\xE1\x1B\x81R\x91\x82\x91`\x04\x83\x01a\x16EV[\x15a\x17\xE8WPV[`\x03Ta\x15{\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80a\x13\x01a\x18\x0C\x92a\n\xBEV[8a\x17\xB7V[\x84a\x130\x91`@Q\x94\x85\x94c\x03\x14\xE6#`\xE3\x1B\x86R`\x04\x86\x01a\x03BV[\x92PPPa\x18I\x91\x92P=\x80\x86\x83>a\x04\x14\x81\x83a\n\xD7V[\x93\x92\x908a\x17`V[\x80a\x13\x01a\x18_\x92a\n\xBEV[8a\x16\xF9V[`\x04Ta\x18|\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90\x80;\x15a\x04)W`@Qc\t^\xA7\xB3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16`\x04\x83\x01R`$\x82\x01\x85\x90R`\0\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x18\xD4W[Pa\x16\xFBV[\x80a\x13\x01a\x18\xE1\x92a\n\xBEV[8a\x18\xCEV[\x91\x90\x82\x03\x91\x82\x11a\x08\x02WV[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x08\x02WV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\x08\x02WV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x08\x02WV[\x91\x90\x82\x01\x80\x92\x11a\x08\x02WV[`\x04Ta\x19m\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x04)W`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01R\x90` \x90\x82\x90`$\x90\x82\x90Z\xFA\x80\x15a\x04$Wa\x19\xAC\x91`\0\x91a\x1A\xD1W[P`\x07UV[`\x07T`\x06T\x90\x81\x81\x10a\x1AgWa\x19\xE8\x7F5}\x90_\x181 \x97\x97\xDFMU\xD7\x9C\\[\xF1\xD9\xF71\x1C\x97j\xFD\x05\xE1=\x88\x1E\xAB\x9B\xC8\x92a\x1A\x0C\x92a\x18\xE7V[a\x19\xFCa\x19\xF7\x82`\x08Ta\x19IV[`\x08UV[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[\x03\x90\xA1`\x04Ta\x1A&\x90a\x05%\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x07T\x90\x80;\x15a\x04)W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15a\x04$Wa\x14lWPV[\x90\x7F\xB6[.\x08]}\x04\x0C1?}N\x1A\xC9\x0FY7\x02o\xEEI~\x0E$\xA7\xEF\xF1jU\xE1\xC5\xEAa\x1A\x96a\x19\xFC\x84\x84a\x18\xE7V[\x03\x90\xA1a\x130a\x1A\xA6\x83\x83a\x190V[\x19`@Q\x93\x84\x93c\xB1n7\x83`\xE0\x1B\x85R`\x04\x85\x01`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[a\x1A\xEA\x91P` =` \x11a\x06TWa\x06D\x81\x83a\n\xD7V[8a\x19\xA6V[a\x1A\xFB\x81\x15\x15a\x0C\xA8V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x08\x02WV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x08\x02WV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x08\x02WV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\x08\x02WV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\x08\x02WV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\x1B\xC1mgN\xC8\0\0\x90\x04\x90V[\x80\x15a\x1D\xCFWgV\x98\xEE\xF0fp\0\0\x81\x12\x15a\x10\xCCWgV\x98\xEE\xF0fo\xFF\xFF\x19\x81\x13\x15a\x1D\xC2W`\0a\x1D\xB2a\x1C\xEC\x83a!\x0BV[a\x1Dua\x10La\x1D\x06a\x1D\x01a\x0F\xD2\x85a\x1C\x8CV[a \x07V[\x92a\x1D\xADa\x1D\xA8a\x1D\xA3a\x1D\x9Ca\x1D\x96a\x1D\x91a\x1D\x8Ba\x1D\x86a\x1D\x80a\x1D{\x8Da\x1Dua\x1Dpa\x1Dja\x1Dea\x0F\xCCa\x1D`a\x1DZa\x1DUa\x1DOa\x1DJ\x8Aa \xE0V[a\x1B\xAAV[\x89a \xBFV[a\x1B\xC4V[\x87a \xBFV[a\x1B\xDCV[a\x1B\xF6V[\x83a \xBFV[a\x1C\x0EV[\x90a \xBFV[a\x1C(V[\x8Ca \xBFV[a\x1C@V[\x8Aa \xBFV[a\x1CXV[\x88a \xBFV[\x93\x80a \xBFV[a\x0E\xCDV[a\x19\x17V[a\x1CpV[\x91\x12\x15a\x03gWa\x03g\x90a\x18\xF4V[Pg\x1B\xC1mgN\xC8\0\0\x90V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x90V[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a\x10\xCCWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x1F,We\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x02\xB7Wn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x02\xB7W\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x02\xB7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01`\xFF\x1B\x81\x14a!&W`\0\x81\x12\x15a\x03gW\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD\xFE\xA2dipfsX\"\x12 \xC4\x04\x92l\xBA\xD6>[A\x05\x163\x1C\xCE.\x1AQ\xD8%C\x0C\x1A\x02\xB9?\xCD\x89\x86\x9D7\xFCbdsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static ATOMICV2_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct AtomicV2(::ethers::contract::Contract); - impl ::core::clone::Clone for AtomicV2 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for AtomicV2 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for AtomicV2 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for AtomicV2 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(AtomicV2)).field(&self.address()).finish() - } - } - impl AtomicV2 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - ATOMICV2_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ATOMICV2_ABI.clone(), - ATOMICV2_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `XTOY` (0xf3c973cf) function - pub fn xtoy(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([243, 201, 115, 207], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `YTOX` (0x6449fc57) function - pub fn ytox(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([100, 73, 252, 87], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `asset` (0x38d52e0f) function - pub fn asset( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([56, 213, 46, 15], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `cdf` (0xd0b71b1e) function - pub fn cdf( - &self, - input: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 183, 27, 30], input) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `cumulativeProfit` (0x85b319ff) function - pub fn cumulative_profit( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([133, 179, 25, 255], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `divWadDown` (0x37c6a44a) function - pub fn div_wad_down( - &self, - x: ::ethers::core::types::U256, - y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([55, 198, 164, 74], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `divWadUp` (0xbd252d06) function - pub fn div_wad_up( - &self, - x: ::ethers::core::types::U256, - y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([189, 37, 45, 6], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `exchange` (0xd2f7265a) function - pub fn exchange( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([210, 247, 38, 90], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `intermediateTokenXBalance` (0x936520c3) function - pub fn intermediate_token_x_balance( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([147, 101, 32, 195], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `intermediateTokenYEndBalance` (0x72b98246) function - pub fn intermediate_token_y_end_balance( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([114, 185, 130, 70], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `intermediateTokenYStartBalance` (0xfa2e5994) function - pub fn intermediate_token_y_start_balance( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([250, 46, 89, 148], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `liquidExchange` (0x9f27ef4f) function - pub fn liquid_exchange( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([159, 39, 239, 79], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `log` (0x2d5b6cb9) function - pub fn log( - &self, - x: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([45, 91, 108, 185], x) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `lower_exchange_price` (0x96fbee1d) function - pub fn lower_exchange_price( - &self, - pool_id: ::ethers::core::types::U256, - input: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([150, 251, 238, 29], (pool_id, input)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mulWadDown` (0xe524f849) function - pub fn mul_wad_down( - &self, - x: ::ethers::core::types::U256, - y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([229, 36, 248, 73], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mulWadUp` (0xae9768a8) function - pub fn mul_wad_up( - &self, - x: ::ethers::core::types::U256, - y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([174, 151, 104, 168], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pdf` (0xd24ce6e5) function - pub fn pdf( - &self, - input: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([210, 76, 230, 229], input) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ppf` (0x3679723a) function - pub fn ppf( - &self, - input: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 121, 114, 58], input) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `quote` (0x999b93af) function - pub fn quote( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([153, 155, 147, 175], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `raise_exchange_price` (0xf9005eb5) function - pub fn raise_exchange_price( - &self, - pool_id: ::ethers::core::types::U256, - input: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([249, 0, 94, 181], (pool_id, input)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `simulateSwap` (0x3928ff97) function - pub fn simulate_swap( - &self, - pool_id: ::ethers::core::types::U256, - swap_x_in: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::Bytes, - ), - > { - self.0 - .method_hash([57, 40, 255, 151], (pool_id, swap_x_in, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `solver` (0x49a7a26d) function - pub fn solver( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([73, 167, 162, 109], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `sqrt` (0x677342ce) function - pub fn sqrt( - &self, - x: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([103, 115, 66, 206], x) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Loss` event - pub fn loss_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LossFilter> { - self.0.event() - } - ///Gets the contract's `Price` event - pub fn price_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, PriceFilter> { - self.0.event() - } - ///Gets the contract's `Profit` event - pub fn profit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ProfitFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - AtomicV2Events, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for AtomicV2 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `AttemptedProfit` with signature `AttemptedProfit(int256)` and selector `0x85aba8de` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "AttemptedProfit", abi = "AttemptedProfit(int256)")] - pub struct AttemptedProfit { - pub profit: ::ethers::core::types::I256, - } - ///Custom Error type `DexSwapFailure` with signature `DexSwapFailure(string,bytes)` and selector `0xcf42d71a` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "DexSwapFailure", abi = "DexSwapFailure(string,bytes)")] - pub struct DexSwapFailure { - pub reason: ::std::string::String, - pub err: ::ethers::core::types::Bytes, - } - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `InsufficientApprovalY` with signature `InsufficientApprovalY(uint256,uint256)` and selector `0xda56d3c5` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "InsufficientApprovalY", - abi = "InsufficientApprovalY(uint256,uint256)" - )] - pub struct InsufficientApprovalY { - pub allowance: ::ethers::core::types::U256, - pub payment: ::ethers::core::types::U256, - } - ///Custom Error type `InsufficientBalanceX` with signature `InsufficientBalanceX(uint256,uint256)` and selector `0x0295b09c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "InsufficientBalanceX", - abi = "InsufficientBalanceX(uint256,uint256)" - )] - pub struct InsufficientBalanceX { - pub balance: ::ethers::core::types::U256, - pub payment: ::ethers::core::types::U256, - } - ///Custom Error type `InsufficientBalanceY` with signature `InsufficientBalanceY(uint256,uint256)` and selector `0x0abe5a89` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "InsufficientBalanceY", - abi = "InsufficientBalanceY(uint256,uint256)" - )] - pub struct InsufficientBalanceY { - pub balance: ::ethers::core::types::U256, - pub payment: ::ethers::core::types::U256, - } - ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Min", abi = "Min()")] - pub struct Min; - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Custom Error type `SimulatedSwapFailure` with signature `SimulatedSwapFailure(bool,uint256,uint256,bytes)` and selector `0x18a73118` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "SimulatedSwapFailure", - abi = "SimulatedSwapFailure(bool,uint256,uint256,bytes)" - )] - pub struct SimulatedSwapFailure { - pub valid: bool, - pub estimated_out: ::ethers::core::types::U256, - pub estimated_price: ::ethers::core::types::U256, - pub payload: ::ethers::core::types::Bytes, - } - ///Custom Error type `UnprofitableArbitrage` with signature `UnprofitableArbitrage(uint256,uint256,uint256)` and selector `0xb16e3783` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "UnprofitableArbitrage", - abi = "UnprofitableArbitrage(uint256,uint256,uint256)" - )] - pub struct UnprofitableArbitrage { - pub start_y_balance: ::ethers::core::types::U256, - pub end_y_balance: ::ethers::core::types::U256, - pub absolute_difference: ::ethers::core::types::U256, - } - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum AtomicV2Errors { - AttemptedProfit(AttemptedProfit), - DexSwapFailure(DexSwapFailure), - Infinity(Infinity), - InsufficientApprovalY(InsufficientApprovalY), - InsufficientBalanceX(InsufficientBalanceX), - InsufficientBalanceY(InsufficientBalanceY), - Min(Min), - NegativeInfinity(NegativeInfinity), - OutOfBounds(OutOfBounds), - SimulatedSwapFailure(SimulatedSwapFailure), - UnprofitableArbitrage(UnprofitableArbitrage), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for AtomicV2Errors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::AttemptedProfit(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DexSwapFailure(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InsufficientApprovalY(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InsufficientBalanceX(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InsufficientBalanceY(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Min(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::OutOfBounds(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SimulatedSwapFailure(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::UnprofitableArbitrage(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for AtomicV2Errors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::AttemptedProfit(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DexSwapFailure(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Infinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InsufficientApprovalY(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InsufficientBalanceX(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InsufficientBalanceY(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeInfinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::OutOfBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SimulatedSwapFailure(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::UnprofitableArbitrage(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for AtomicV2Errors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for AtomicV2Errors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AttemptedProfit(element) => ::core::fmt::Display::fmt(element, f), - Self::DexSwapFailure(element) => ::core::fmt::Display::fmt(element, f), - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::InsufficientApprovalY(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InsufficientBalanceX(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InsufficientBalanceY(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Min(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - Self::SimulatedSwapFailure(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::UnprofitableArbitrage(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for AtomicV2Errors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for AtomicV2Errors { - fn from(value: AttemptedProfit) -> Self { - Self::AttemptedProfit(value) - } - } - impl ::core::convert::From for AtomicV2Errors { - fn from(value: DexSwapFailure) -> Self { - Self::DexSwapFailure(value) - } - } - impl ::core::convert::From for AtomicV2Errors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for AtomicV2Errors { - fn from(value: InsufficientApprovalY) -> Self { - Self::InsufficientApprovalY(value) - } - } - impl ::core::convert::From for AtomicV2Errors { - fn from(value: InsufficientBalanceX) -> Self { - Self::InsufficientBalanceX(value) - } - } - impl ::core::convert::From for AtomicV2Errors { - fn from(value: InsufficientBalanceY) -> Self { - Self::InsufficientBalanceY(value) - } - } - impl ::core::convert::From for AtomicV2Errors { - fn from(value: Min) -> Self { - Self::Min(value) - } - } - impl ::core::convert::From for AtomicV2Errors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for AtomicV2Errors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } - impl ::core::convert::From for AtomicV2Errors { - fn from(value: SimulatedSwapFailure) -> Self { - Self::SimulatedSwapFailure(value) - } - } - impl ::core::convert::From for AtomicV2Errors { - fn from(value: UnprofitableArbitrage) -> Self { - Self::UnprofitableArbitrage(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Loss", abi = "Loss(uint256)")] - pub struct LossFilter { - pub loss: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Price", abi = "Price(uint256,uint256)")] - pub struct PriceFilter { - pub price: ::ethers::core::types::U256, - pub timestamp: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Profit", abi = "Profit(uint256)")] - pub struct ProfitFilter { - pub profit: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum AtomicV2Events { - LossFilter(LossFilter), - PriceFilter(PriceFilter), - ProfitFilter(ProfitFilter), - } - impl ::ethers::contract::EthLogDecode for AtomicV2Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = LossFilter::decode_log(log) { - return Ok(AtomicV2Events::LossFilter(decoded)); - } - if let Ok(decoded) = PriceFilter::decode_log(log) { - return Ok(AtomicV2Events::PriceFilter(decoded)); - } - if let Ok(decoded) = ProfitFilter::decode_log(log) { - return Ok(AtomicV2Events::ProfitFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for AtomicV2Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::LossFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::PriceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ProfitFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for AtomicV2Events { - fn from(value: LossFilter) -> Self { - Self::LossFilter(value) - } - } - impl ::core::convert::From for AtomicV2Events { - fn from(value: PriceFilter) -> Self { - Self::PriceFilter(value) - } - } - impl ::core::convert::From for AtomicV2Events { - fn from(value: ProfitFilter) -> Self { - Self::ProfitFilter(value) - } - } - ///Container type for all input parameters for the `XTOY` function with signature `XTOY()` and selector `0xf3c973cf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "XTOY", abi = "XTOY()")] - pub struct XtoyCall; - ///Container type for all input parameters for the `YTOX` function with signature `YTOX()` and selector `0x6449fc57` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "YTOX", abi = "YTOX()")] - pub struct YtoxCall; - ///Container type for all input parameters for the `asset` function with signature `asset()` and selector `0x38d52e0f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "asset", abi = "asset()")] - pub struct AssetCall; - ///Container type for all input parameters for the `cdf` function with signature `cdf(int256)` and selector `0xd0b71b1e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "cdf", abi = "cdf(int256)")] - pub struct CdfCall { - pub input: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `cumulativeProfit` function with signature `cumulativeProfit()` and selector `0x85b319ff` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "cumulativeProfit", abi = "cumulativeProfit()")] - pub struct CumulativeProfitCall; - ///Container type for all input parameters for the `divWadDown` function with signature `divWadDown(uint256,uint256)` and selector `0x37c6a44a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "divWadDown", abi = "divWadDown(uint256,uint256)")] - pub struct DivWadDownCall { - pub x: ::ethers::core::types::U256, - pub y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `divWadUp` function with signature `divWadUp(uint256,uint256)` and selector `0xbd252d06` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "divWadUp", abi = "divWadUp(uint256,uint256)")] - pub struct DivWadUpCall { - pub x: ::ethers::core::types::U256, - pub y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `exchange` function with signature `exchange()` and selector `0xd2f7265a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "exchange", abi = "exchange()")] - pub struct ExchangeCall; - ///Container type for all input parameters for the `intermediateTokenXBalance` function with signature `intermediateTokenXBalance()` and selector `0x936520c3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "intermediateTokenXBalance", abi = "intermediateTokenXBalance()")] - pub struct IntermediateTokenXBalanceCall; - ///Container type for all input parameters for the `intermediateTokenYEndBalance` function with signature `intermediateTokenYEndBalance()` and selector `0x72b98246` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "intermediateTokenYEndBalance", - abi = "intermediateTokenYEndBalance()" - )] - pub struct IntermediateTokenYEndBalanceCall; - ///Container type for all input parameters for the `intermediateTokenYStartBalance` function with signature `intermediateTokenYStartBalance()` and selector `0xfa2e5994` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "intermediateTokenYStartBalance", - abi = "intermediateTokenYStartBalance()" - )] - pub struct IntermediateTokenYStartBalanceCall; - ///Container type for all input parameters for the `liquidExchange` function with signature `liquidExchange()` and selector `0x9f27ef4f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "liquidExchange", abi = "liquidExchange()")] - pub struct LiquidExchangeCall; - ///Container type for all input parameters for the `log` function with signature `log(int256)` and selector `0x2d5b6cb9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "log", abi = "log(int256)")] - pub struct LogCall { - pub x: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `lower_exchange_price` function with signature `lower_exchange_price(uint256,uint256)` and selector `0x96fbee1d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "lower_exchange_price", - abi = "lower_exchange_price(uint256,uint256)" - )] - pub struct LowerExchangePriceCall { - pub pool_id: ::ethers::core::types::U256, - pub input: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `mulWadDown` function with signature `mulWadDown(uint256,uint256)` and selector `0xe524f849` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mulWadDown", abi = "mulWadDown(uint256,uint256)")] - pub struct MulWadDownCall { - pub x: ::ethers::core::types::U256, - pub y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `mulWadUp` function with signature `mulWadUp(uint256,uint256)` and selector `0xae9768a8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mulWadUp", abi = "mulWadUp(uint256,uint256)")] - pub struct MulWadUpCall { - pub x: ::ethers::core::types::U256, - pub y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `pdf` function with signature `pdf(int256)` and selector `0xd24ce6e5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pdf", abi = "pdf(int256)")] - pub struct PdfCall { - pub input: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `ppf` function with signature `ppf(int256)` and selector `0x3679723a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "ppf", abi = "ppf(int256)")] - pub struct PpfCall { - pub input: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `quote` function with signature `quote()` and selector `0x999b93af` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "quote", abi = "quote()")] - pub struct QuoteCall; - ///Container type for all input parameters for the `raise_exchange_price` function with signature `raise_exchange_price(uint256,uint256)` and selector `0xf9005eb5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "raise_exchange_price", - abi = "raise_exchange_price(uint256,uint256)" - )] - pub struct RaiseExchangePriceCall { - pub pool_id: ::ethers::core::types::U256, - pub input: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `simulateSwap` function with signature `simulateSwap(uint256,bool,uint256)` and selector `0x3928ff97` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "simulateSwap", abi = "simulateSwap(uint256,bool,uint256)")] - pub struct SimulateSwapCall { - pub pool_id: ::ethers::core::types::U256, - pub swap_x_in: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `solver` function with signature `solver()` and selector `0x49a7a26d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "solver", abi = "solver()")] - pub struct SolverCall; - ///Container type for all input parameters for the `sqrt` function with signature `sqrt(uint256)` and selector `0x677342ce` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "sqrt", abi = "sqrt(uint256)")] - pub struct SqrtCall { - pub x: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum AtomicV2Calls { - Xtoy(XtoyCall), - Ytox(YtoxCall), - Asset(AssetCall), - Cdf(CdfCall), - CumulativeProfit(CumulativeProfitCall), - DivWadDown(DivWadDownCall), - DivWadUp(DivWadUpCall), - Exchange(ExchangeCall), - IntermediateTokenXBalance(IntermediateTokenXBalanceCall), - IntermediateTokenYEndBalance(IntermediateTokenYEndBalanceCall), - IntermediateTokenYStartBalance(IntermediateTokenYStartBalanceCall), - LiquidExchange(LiquidExchangeCall), - Log(LogCall), - LowerExchangePrice(LowerExchangePriceCall), - MulWadDown(MulWadDownCall), - MulWadUp(MulWadUpCall), - Pdf(PdfCall), - Ppf(PpfCall), - Quote(QuoteCall), - RaiseExchangePrice(RaiseExchangePriceCall), - SimulateSwap(SimulateSwapCall), - Solver(SolverCall), - Sqrt(SqrtCall), - } - impl ::ethers::core::abi::AbiDecode for AtomicV2Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Xtoy(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Ytox(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Asset(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Cdf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::CumulativeProfit(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DivWadDown(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DivWadUp(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Exchange(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::IntermediateTokenXBalance(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::IntermediateTokenYEndBalance(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::IntermediateTokenYStartBalance(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::LiquidExchange(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Log(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::LowerExchangePrice(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::MulWadDown(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::MulWadUp(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Pdf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Ppf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Quote(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::RaiseExchangePrice(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SimulateSwap(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Solver(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Sqrt(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for AtomicV2Calls { - fn encode(self) -> Vec { - match self { - Self::Xtoy(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Ytox(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Asset(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Cdf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CumulativeProfit(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DivWadDown(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DivWadUp(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Exchange(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::IntermediateTokenXBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::IntermediateTokenYEndBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::IntermediateTokenYStartBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::LiquidExchange(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Log(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::LowerExchangePrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::MulWadDown(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::MulWadUp(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Pdf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Ppf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Quote(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RaiseExchangePrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SimulateSwap(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Solver(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Sqrt(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for AtomicV2Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Xtoy(element) => ::core::fmt::Display::fmt(element, f), - Self::Ytox(element) => ::core::fmt::Display::fmt(element, f), - Self::Asset(element) => ::core::fmt::Display::fmt(element, f), - Self::Cdf(element) => ::core::fmt::Display::fmt(element, f), - Self::CumulativeProfit(element) => ::core::fmt::Display::fmt(element, f), - Self::DivWadDown(element) => ::core::fmt::Display::fmt(element, f), - Self::DivWadUp(element) => ::core::fmt::Display::fmt(element, f), - Self::Exchange(element) => ::core::fmt::Display::fmt(element, f), - Self::IntermediateTokenXBalance(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IntermediateTokenYEndBalance(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IntermediateTokenYStartBalance(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LiquidExchange(element) => ::core::fmt::Display::fmt(element, f), - Self::Log(element) => ::core::fmt::Display::fmt(element, f), - Self::LowerExchangePrice(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::MulWadDown(element) => ::core::fmt::Display::fmt(element, f), - Self::MulWadUp(element) => ::core::fmt::Display::fmt(element, f), - Self::Pdf(element) => ::core::fmt::Display::fmt(element, f), - Self::Ppf(element) => ::core::fmt::Display::fmt(element, f), - Self::Quote(element) => ::core::fmt::Display::fmt(element, f), - Self::RaiseExchangePrice(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SimulateSwap(element) => ::core::fmt::Display::fmt(element, f), - Self::Solver(element) => ::core::fmt::Display::fmt(element, f), - Self::Sqrt(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: XtoyCall) -> Self { - Self::Xtoy(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: YtoxCall) -> Self { - Self::Ytox(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: AssetCall) -> Self { - Self::Asset(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: CdfCall) -> Self { - Self::Cdf(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: CumulativeProfitCall) -> Self { - Self::CumulativeProfit(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: DivWadDownCall) -> Self { - Self::DivWadDown(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: DivWadUpCall) -> Self { - Self::DivWadUp(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: ExchangeCall) -> Self { - Self::Exchange(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: IntermediateTokenXBalanceCall) -> Self { - Self::IntermediateTokenXBalance(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: IntermediateTokenYEndBalanceCall) -> Self { - Self::IntermediateTokenYEndBalance(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: IntermediateTokenYStartBalanceCall) -> Self { - Self::IntermediateTokenYStartBalance(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: LiquidExchangeCall) -> Self { - Self::LiquidExchange(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: LogCall) -> Self { - Self::Log(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: LowerExchangePriceCall) -> Self { - Self::LowerExchangePrice(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: MulWadDownCall) -> Self { - Self::MulWadDown(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: MulWadUpCall) -> Self { - Self::MulWadUp(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: PdfCall) -> Self { - Self::Pdf(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: PpfCall) -> Self { - Self::Ppf(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: QuoteCall) -> Self { - Self::Quote(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: RaiseExchangePriceCall) -> Self { - Self::RaiseExchangePrice(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: SimulateSwapCall) -> Self { - Self::SimulateSwap(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: SolverCall) -> Self { - Self::Solver(value) - } - } - impl ::core::convert::From for AtomicV2Calls { - fn from(value: SqrtCall) -> Self { - Self::Sqrt(value) - } - } - ///Container type for all return fields from the `XTOY` function with signature `XTOY()` and selector `0xf3c973cf` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct XtoyReturn(pub bool); - ///Container type for all return fields from the `YTOX` function with signature `YTOX()` and selector `0x6449fc57` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct YtoxReturn(pub bool); - ///Container type for all return fields from the `asset` function with signature `asset()` and selector `0x38d52e0f` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AssetReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `cdf` function with signature `cdf(int256)` and selector `0xd0b71b1e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CdfReturn { - pub output: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `cumulativeProfit` function with signature `cumulativeProfit()` and selector `0x85b319ff` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CumulativeProfitReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `divWadDown` function with signature `divWadDown(uint256,uint256)` and selector `0x37c6a44a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DivWadDownReturn { - pub z: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `divWadUp` function with signature `divWadUp(uint256,uint256)` and selector `0xbd252d06` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DivWadUpReturn { - pub z: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `exchange` function with signature `exchange()` and selector `0xd2f7265a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExchangeReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `intermediateTokenXBalance` function with signature `intermediateTokenXBalance()` and selector `0x936520c3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IntermediateTokenXBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `intermediateTokenYEndBalance` function with signature `intermediateTokenYEndBalance()` and selector `0x72b98246` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IntermediateTokenYEndBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `intermediateTokenYStartBalance` function with signature `intermediateTokenYStartBalance()` and selector `0xfa2e5994` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IntermediateTokenYStartBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `liquidExchange` function with signature `liquidExchange()` and selector `0x9f27ef4f` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct LiquidExchangeReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `log` function with signature `log(int256)` and selector `0x2d5b6cb9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct LogReturn { - pub z: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `mulWadDown` function with signature `mulWadDown(uint256,uint256)` and selector `0xe524f849` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MulWadDownReturn { - pub z: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `mulWadUp` function with signature `mulWadUp(uint256,uint256)` and selector `0xae9768a8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MulWadUpReturn { - pub z: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `pdf` function with signature `pdf(int256)` and selector `0xd24ce6e5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PdfReturn { - pub output: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `ppf` function with signature `ppf(int256)` and selector `0x3679723a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PpfReturn { - pub output: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `quote` function with signature `quote()` and selector `0x999b93af` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct QuoteReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `simulateSwap` function with signature `simulateSwap(uint256,bool,uint256)` and selector `0x3928ff97` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SimulateSwapReturn { - pub valid: bool, - pub estimated_out: ::ethers::core::types::U256, - pub estimated_price: ::ethers::core::types::U256, - pub payload: ::ethers::core::types::Bytes, - } - ///Container type for all return fields from the `solver` function with signature `solver()` and selector `0x49a7a26d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SolverReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `sqrt` function with signature `sqrt(uint256)` and selector `0x677342ce` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SqrtReturn { - pub z: ::ethers::core::types::U256, - } -} diff --git a/crates/bindings/src/bisection_lib.rs b/crates/bindings/src/bisection_lib.rs deleted file mode 100644 index bad8a7a8e..000000000 --- a/crates/bindings/src/bisection_lib.rs +++ /dev/null @@ -1,74 +0,0 @@ -pub use bisection_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod bisection_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static BISECTIONLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct BisectionLib(::ethers::contract::Contract); - impl ::core::clone::Clone for BisectionLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for BisectionLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for BisectionLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for BisectionLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(BisectionLib)) - .field(&self.address()) - .finish() - } - } - impl BisectionLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - BISECTIONLIB_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for BisectionLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/coin.rs b/crates/bindings/src/coin.rs deleted file mode 100644 index a87f79586..000000000 --- a/crates/bindings/src/coin.rs +++ /dev/null @@ -1,1368 +0,0 @@ -pub use coin::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod coin { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("initialSupply"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("allowance"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allowance"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("approve"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("approve"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("decimals"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("decimals"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("name"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("name"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("nonces"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("nonces"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("permit"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("permit"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("value"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deadline"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("v"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("r"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("s"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("symbol"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("symbol"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("totalSupply"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("totalSupply"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("transfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("transferFrom"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Approval"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Approval"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Transfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static COIN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\xE0`@\x90\x80\x82R4b\0\x04\xE8WPb\0\x11\x1F\x90\x818\x03\x91\x82\x82Q\x93\x84\x92b\0\0)\x82\x85b\0\x05gV[\x839` \x93\x84\x91\x81\x01\x03\x12b\0\x04\x99WQ\x81Q\x90b\0\0H\x82b\0\x055V[`\x04\x93\x84\x83Rc!\xB7\xB4\xB7`\xE1\x1B\x81\x84\x01R\x83Q\x91b\0\0h\x83b\0\x055V[\x85\x83Rc!\xA7\xA4\xA7`\xE1\x1B\x82\x84\x01R\x83Q`\x01`\x01`@\x1B\x03\x94\x90\x93\x90\x85\x85\x11b\0\x04\x84W`\0\x94\x80b\0\0\x9D\x87Tb\0\x05\x8BV[\x92`\x1F\x93\x84\x81\x11b\0\x043W[P\x86\x90\x84\x83\x11`\x01\x14b\0\x03\xCBW\x88\x92b\0\x03\xBFW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x85U[\x81Q\x90\x86\x82\x11b\0\x03\xACW\x81\x90`\x01\x93b\0\0\xF1\x85Tb\0\x05\x8BV[\x82\x81\x11b\0\x03WW[P\x86\x91\x83\x11`\x01\x14b\0\x02\xF3W\x87\x92b\0\x02\xE7W[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x81U[`\x12`\x80RF`\xA0R\x85Q\x84T\x91\x81\x86b\0\x01>\x85b\0\x05\x8BV[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02\xC7WPP`\x01\x14b\0\x02\x87W[Pb\0\x01n\x92P\x03\x82b\0\x05gV[Q\x90 \x85Q\x83\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R\x87\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x95\x81\x87\x10\x90\x87\x11\x17b\0\x02tW\x85\x87RQ\x90 `\xC0R`\x02T\x81\x81\x01\x80\x91\x11b\0\x02aW\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x92\x91`\x02U3\x84R`\x03\x82R\x85\x84 \x81\x81T\x01\x90U\x84R3\x93\xA3Qa\x0BV\x90\x81b\0\x05\xC9\x829`\x80Q\x81a\x05\xA3\x01R`\xA0Q\x81a\t~\x01R`\xC0Q\x81a\t\xA5\x01R\xF3[cNH{q`\xE0\x1B\x84R`\x11\x87R`$\x84\xFD[cNH{q`\xE0\x1B\x85R`A\x88R`$\x85\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02\xAEWPPb\0\x01n\x93P\x82\x01\x018b\0\x01_V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x02\x94V[`\xFF\x19\x16\x88Rb\0\x01n\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01_\x90PV[\x01Q\x90P8\x80b\0\x01\x0FV[\x84\x88R\x86\x88 \x85\x94P\x91\x90`\x1F\x19\x84\x16\x89[\x89\x82\x82\x10b\0\x03@WPP\x84\x11b\0\x03&W[PPP\x81\x1B\x01\x81Ub\0\x01#V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x18V[\x83\x85\x01Q\x86U\x88\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x03\x05V[\x90\x91\x92P\x84\x88R\x86\x88 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x89\x87\x10b\0\x03\xA2W[\x91\x86\x95\x88\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x03\x93WPPb\0\0\xFAV[\x8A\x81U\x86\x95P\x87\x91\x01b\0\x03\x83V[\x92P\x81\x92b\0\x03tV[cNH{q`\xE0\x1B\x86R`A\x89R`$\x86\xFD[\x01Q\x90P8\x80b\0\0\xC0V[\x88\x80R\x87\x89 \x92P`\x1F\x19\x84\x16\x89[\x89\x82\x82\x10b\0\x04\x1CWPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x04\x02W[PPP\x81\x1B\x01\x85Ub\0\0\xD5V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\xF4V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\xDAV[\x90\x91P\x87\x80R\x86\x88 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x89\x86\x10b\0\x04zW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04kWPb\0\0\xAAV[\x89\x81U\x84\x93P`\x01\x01b\0\x04\\V[\x92P\x81\x92b\0\x04OV[`A\x88cNH{q`\xE0\x1B`\0RR`$`\0\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@\x81\x01\x90\x81\x10`\x01`\x01`@\x1B\x03\x82\x11\x17b\0\x05QW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x05QW`@RV[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x05\xBDW[` \x83\x10\x14b\0\x05\xA7WV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x05\x9BV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07%W\x80c\t^\xA7\xB3\x14a\x06\xB6W\x80c\x18\x16\r\xDD\x14a\x06\x99W\x80c#\xB8r\xDD\x14a\x05\xC7W\x80c1<\xE5g\x14a\x05\x8BW\x80c6D\xE5\x15\x14a\x05iW\x80cp\xA0\x821\x14a\x051W\x80c~\xCE\xBE\0\x14a\x04\xF9W\x80c\x95\xD8\x9BA\x14a\x04\x17W\x80c\xA9\x05\x9C\xBB\x14a\x03\x93W\x80c\xD5\x05\xAC\xCF\x14a\x01TWc\xDDb\xED>\x14a\x01\x02WPa\0\x11V[\x914a\x01OW\x81`\x03\x196\x01\x12a\x01JW` \x92\x82\x91a\x01 a\t%V[a\x01(a\t@V[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\x1AV[a\x07\xCAV[P\x904a\x01OW`\xE06`\x03\x19\x01\x12a\x01JWa\x01oa\t%V[\x90a\x01xa\t@V[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\x8FWB\x85\x10a\x03LWa\x01\x9Ea\tyV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x038W\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03%W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03\x1BW\x86Q\x16\x96\x87\x15\x15\x80a\x03\x12W[\x15a\x02\xE0W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\x9DV[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01OW\x80`\x03\x196\x01\x12a\x01JW` \x91a\x03\xB0a\t%V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xCA\x84\x82Ta\tVV[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x85\x90\xA3Q`\x01\x81R\xF3[P4a\x01OW\x80`\x03\x196\x01\x12a\x01JW\x81Q\x90\x80`\x01\x80T\x90a\x04:\x82a\x08jV[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x04\xCCWP`\x01\x14a\x04tW[a\x04p\x86\x88a\x04f\x82\x89\x03\x83a\x08\xA4V[Q\x91\x82\x91\x82a\x08\xDCV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x04\xB9WPPPP\x81\x01` \x01a\x04f\x82a\x04p\x86a\x04UV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x04\x9CV[\x90Pa\x04p\x97\x95P\x86\x93P` \x92Pa\x04f\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04UV[P\x904a\x01OW` 6`\x03\x19\x01\x12a\x01JW` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05!a\t%V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01OW` 6`\x03\x19\x01\x12a\x01JW` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05Ya\t%V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P4a\x01OW6`\x03\x19\x01\x12a\x01JW` \x90a\x05\x84a\tyV[\x90Q\x90\x81R\xF3[P4a\x01OW6`\x03\x19\x01\x12a\x01JW` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01OW``6`\x03\x19\x01\x12a\x01JWa\x05\xE1a\t%V[\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEFa\x06\na\t@V[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x06vW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x06W\x85\x82Ta\tVV[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x06\x7F\x91a\tVV[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x06?V[P4a\x01OW6`\x03\x19\x01\x12a\x01JW` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01OW\x81`\x03\x196\x01\x12a\x01JW` \x92a\x06\xD3a\t%V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x07\xCAW\x80`\x03\x196\x01\x12a\x01JW\x81Q\x90\x80\x80T\x90a\x07F\x82a\x08jV[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x04\xCCWP`\x01\x14a\x07sWa\x04p\x86\x88a\x04f\x82\x89\x03\x83a\x08\xA4V[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x07\xB7WPPPP\x81\x01` \x01a\x04f\x82a\x04p\x86a\x04UV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x07\x9AV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x08\x9AW[` \x83\x10\x14a\x08\x84WV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x08yV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x08\xC6W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\x11WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\x08\xEFV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\t;WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\t;WV[\x91\x90\x82\x03\x91\x82\x11a\tcWV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\t\xC7WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\t\xD7\x82a\x08jV[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\x02WPP`\x01\x14a\n\xA9W[Pa\n\n\x92P\x03\x82a\x08\xA4V[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\n\x95WP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\n\xEAWPPa\n\n\x93P\x82\x01\x018a\t\xFDV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\n\xD3V[`\xFF\x19\x16\x88Ra\n\n\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\t\xFD\x90PV\xFE\xA2dipfsX\"\x12 \x19q\x97\xEAS\x08\xE45\xA4\x82\xE0\xA9\xA5\t\x1D\xB5#\xC9\x19\xCC\xEE\x1D\x0BCn\xAD\xDCb\x8F\x86zLdsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static COIN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07%W\x80c\t^\xA7\xB3\x14a\x06\xB6W\x80c\x18\x16\r\xDD\x14a\x06\x99W\x80c#\xB8r\xDD\x14a\x05\xC7W\x80c1<\xE5g\x14a\x05\x8BW\x80c6D\xE5\x15\x14a\x05iW\x80cp\xA0\x821\x14a\x051W\x80c~\xCE\xBE\0\x14a\x04\xF9W\x80c\x95\xD8\x9BA\x14a\x04\x17W\x80c\xA9\x05\x9C\xBB\x14a\x03\x93W\x80c\xD5\x05\xAC\xCF\x14a\x01TWc\xDDb\xED>\x14a\x01\x02WPa\0\x11V[\x914a\x01OW\x81`\x03\x196\x01\x12a\x01JW` \x92\x82\x91a\x01 a\t%V[a\x01(a\t@V[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\x1AV[a\x07\xCAV[P\x904a\x01OW`\xE06`\x03\x19\x01\x12a\x01JWa\x01oa\t%V[\x90a\x01xa\t@V[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\x8FWB\x85\x10a\x03LWa\x01\x9Ea\tyV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x038W\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03%W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03\x1BW\x86Q\x16\x96\x87\x15\x15\x80a\x03\x12W[\x15a\x02\xE0W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\x9DV[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01OW\x80`\x03\x196\x01\x12a\x01JW` \x91a\x03\xB0a\t%V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xCA\x84\x82Ta\tVV[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x85\x90\xA3Q`\x01\x81R\xF3[P4a\x01OW\x80`\x03\x196\x01\x12a\x01JW\x81Q\x90\x80`\x01\x80T\x90a\x04:\x82a\x08jV[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x04\xCCWP`\x01\x14a\x04tW[a\x04p\x86\x88a\x04f\x82\x89\x03\x83a\x08\xA4V[Q\x91\x82\x91\x82a\x08\xDCV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x04\xB9WPPPP\x81\x01` \x01a\x04f\x82a\x04p\x86a\x04UV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x04\x9CV[\x90Pa\x04p\x97\x95P\x86\x93P` \x92Pa\x04f\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04UV[P\x904a\x01OW` 6`\x03\x19\x01\x12a\x01JW` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05!a\t%V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01OW` 6`\x03\x19\x01\x12a\x01JW` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05Ya\t%V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P4a\x01OW6`\x03\x19\x01\x12a\x01JW` \x90a\x05\x84a\tyV[\x90Q\x90\x81R\xF3[P4a\x01OW6`\x03\x19\x01\x12a\x01JW` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01OW``6`\x03\x19\x01\x12a\x01JWa\x05\xE1a\t%V[\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEFa\x06\na\t@V[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x06vW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x06W\x85\x82Ta\tVV[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x06\x7F\x91a\tVV[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x06?V[P4a\x01OW6`\x03\x19\x01\x12a\x01JW` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01OW\x81`\x03\x196\x01\x12a\x01JW` \x92a\x06\xD3a\t%V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x07\xCAW\x80`\x03\x196\x01\x12a\x01JW\x81Q\x90\x80\x80T\x90a\x07F\x82a\x08jV[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x04\xCCWP`\x01\x14a\x07sWa\x04p\x86\x88a\x04f\x82\x89\x03\x83a\x08\xA4V[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x07\xB7WPPPP\x81\x01` \x01a\x04f\x82a\x04p\x86a\x04UV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x07\x9AV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x08\x9AW[` \x83\x10\x14a\x08\x84WV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x08yV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x08\xC6W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\x11WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\x08\xEFV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\t;WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\t;WV[\x91\x90\x82\x03\x91\x82\x11a\tcWV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\t\xC7WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\t\xD7\x82a\x08jV[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\x02WPP`\x01\x14a\n\xA9W[Pa\n\n\x92P\x03\x82a\x08\xA4V[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\n\x95WP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\n\xEAWPPa\n\n\x93P\x82\x01\x018a\t\xFDV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\n\xD3V[`\xFF\x19\x16\x88Ra\n\n\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\t\xFD\x90PV\xFE\xA2dipfsX\"\x12 \x19q\x97\xEAS\x08\xE45\xA4\x82\xE0\xA9\xA5\t\x1D\xB5#\xC9\x19\xCC\xEE\x1D\x0BCn\xAD\xDCb\x8F\x86zLdsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static COIN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct Coin(::ethers::contract::Contract); - impl ::core::clone::Clone for Coin { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Coin { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Coin { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Coin { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Coin)).field(&self.address()).finish() - } - } - impl Coin { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - COIN_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - COIN_ABI.clone(), - COIN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CoinEvents> { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for Coin { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum CoinEvents { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for CoinEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(CoinEvents::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(CoinEvents::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for CoinEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for CoinEvents { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for CoinEvents { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum CoinCalls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Decimals(DecimalsCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for CoinCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for CoinCalls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for CoinCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for CoinCalls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/dfmm.rs b/crates/bindings/src/dfmm.rs deleted file mode 100644 index e610f807f..000000000 --- a/crates/bindings/src/dfmm.rs +++ /dev/null @@ -1,2166 +0,0 @@ -pub use dfmm::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod dfmm { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("allocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allocate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("deallocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("deallocate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPool"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getPool"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Address, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct IDFMM.Pool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getReservesAndLiquidity"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "getReservesAndLiquidity", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("init"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("init"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("params"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct IDFMM.InitParams"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("liquidityOf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("liquidityOf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("lpTokenImplementation"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "lpTokenImplementation", - ), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("nonce"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("nonce"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("pools"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("pools"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("strategy"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("tokenX"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("tokenY"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("liquidityToken"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("swap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("swap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("update"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("update"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Allocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Allocate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaL"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Deallocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Deallocate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaL"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Init"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Init"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("strategy"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("tokenX"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("tokenY"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Swap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Swap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("isSwapXForY"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("inputAmount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("outputAmount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("ERC1167FailedCreateClone"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "ERC1167FailedCreateClone", - ), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Invalid"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Invalid"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("negative"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "swapConstantGrowth", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidSwap"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidSwap"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidSwapInputTransfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "InvalidSwapInputTransfer", - ), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidSwapOutputTransfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "InvalidSwapOutputTransfer", - ), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidTokens"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidTokens"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Locked"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Locked"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Min"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Min"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static DFMM_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\xA0`@\x90\x80\x82R4b\0\x01[WP`\x01\x80U\x80Qa\x11D\x80\x82\x01\x91`\x01`\x01`@\x1B\x03\x91\x82\x84\x11\x82\x85\x10\x17b\0\x01EWb\0\x1E\xE5\x829\x80`\0\x93\x03\x90\x83\xF0\x80\x15b\0\x01;W`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81\x90R\x80;\x15b\0\0\xE9W\x90\x82\x80\x92`\x84\x86Q\x80\x96\x81\x93c&lE\xBB`\xE1\x1B\x83R\x89`\x04\x84\x01R\x81`D\x84\x01R```$\x84\x01R\x81`d\x84\x01RZ\xF1\x80\x15b\0\0\xDFWb\0\0\xB8W[\x83Qa\x1D<\x90\x81b\0\x01\xA9\x829`\x80Q\x81\x81\x81a\x0Bj\x01Ra\x10\x08\x01R\xF3[\x82\x11b\0\0\xCBWP\x81R8\x80\x80b\0\0\x99V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x84Q=\x84\x82>=\x90\xFD[\x83QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x83Q=\x84\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static DFMM_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static DFMM_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct DFMM(::ethers::contract::Contract); - impl ::core::clone::Clone for DFMM { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for DFMM { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for DFMM { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for DFMM { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(DFMM)).field(&self.address()).finish() - } - } - impl DFMM { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - DFMM_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - DFMM_ABI.clone(), - DFMM_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `allocate` (0x2ec38188) function - pub fn allocate( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([46, 195, 129, 136], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deallocate` (0x9d942f9a) function - pub fn deallocate( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([157, 148, 47, 154], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPool` (0x068bcd8d) function - pub fn get_pool( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 139, 205, 141], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReservesAndLiquidity` (0xce153bf4) function - pub fn get_reserves_and_liquidity( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([206, 21, 59, 244], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `init` (0x1455f1fc) function - pub fn init( - &self, - params: InitParams, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([20, 85, 241, 252], (params,)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `liquidityOf` (0x3be6a341) function - pub fn liquidity_of( - &self, - account: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([59, 230, 163, 65], (account, pool_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `lpTokenImplementation` (0xb462cd25) function - pub fn lp_token_implementation( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([180, 98, 205, 37], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonce` (0xaffed0e0) function - pub fn nonce( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 254, 208, 224], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0xac4afa38) function - pub fn pools( - &self, - p0: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - ::ethers::core::types::Address, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::Address, - ), - > { - self.0 - .method_hash([172, 74, 250, 56], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `swap` (0xbd0625ab) function - pub fn swap( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([189, 6, 37, 171], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `update` (0x0216b838) function - pub fn update( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([2, 22, 184, 56], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - AllocateFilter, - > { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DeallocateFilter, - > { - self.0.event() - } - ///Gets the contract's `Init` event - pub fn init_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, InitFilter> { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DFMMEvents> { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for DFMM { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `ERC1167FailedCreateClone` with signature `ERC1167FailedCreateClone()` and selector `0xc2f868f4` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ERC1167FailedCreateClone", abi = "ERC1167FailedCreateClone()")] - pub struct ERC1167FailedCreateClone; - ///Custom Error type `Invalid` with signature `Invalid(bool,uint256)` and selector `0xeec0da52` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Invalid", abi = "Invalid(bool,uint256)")] - pub struct Invalid { - pub negative: bool, - pub swap_constant_growth: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidSwap` with signature `InvalidSwap()` and selector `0x11157667` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSwap", abi = "InvalidSwap()")] - pub struct InvalidSwap; - ///Custom Error type `InvalidSwapInputTransfer` with signature `InvalidSwapInputTransfer()` and selector `0x80f64074` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSwapInputTransfer", abi = "InvalidSwapInputTransfer()")] - pub struct InvalidSwapInputTransfer; - ///Custom Error type `InvalidSwapOutputTransfer` with signature `InvalidSwapOutputTransfer()` and selector `0xf3cbbc87` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSwapOutputTransfer", abi = "InvalidSwapOutputTransfer()")] - pub struct InvalidSwapOutputTransfer; - ///Custom Error type `InvalidTokens` with signature `InvalidTokens()` and selector `0x672215de` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidTokens", abi = "InvalidTokens()")] - pub struct InvalidTokens; - ///Custom Error type `Locked` with signature `Locked()` and selector `0x0f2e5b6c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Locked", abi = "Locked()")] - pub struct Locked; - ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Min", abi = "Min()")] - pub struct Min; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum DFMMErrors { - ERC1167FailedCreateClone(ERC1167FailedCreateClone), - Invalid(Invalid), - InvalidSwap(InvalidSwap), - InvalidSwapInputTransfer(InvalidSwapInputTransfer), - InvalidSwapOutputTransfer(InvalidSwapOutputTransfer), - InvalidTokens(InvalidTokens), - Locked(Locked), - Min(Min), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for DFMMErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ERC1167FailedCreateClone(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Invalid(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidSwap(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidSwapInputTransfer(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidSwapOutputTransfer(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidTokens(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Locked(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Min(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for DFMMErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::ERC1167FailedCreateClone(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Invalid(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidSwap(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidSwapInputTransfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidSwapOutputTransfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidTokens(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Locked(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for DFMMErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector == ::selector() => { - true - } - _ if selector == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for DFMMErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ERC1167FailedCreateClone(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Invalid(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidSwap(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidSwapInputTransfer(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InvalidSwapOutputTransfer(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InvalidTokens(element) => ::core::fmt::Display::fmt(element, f), - Self::Locked(element) => ::core::fmt::Display::fmt(element, f), - Self::Min(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for DFMMErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for DFMMErrors { - fn from(value: ERC1167FailedCreateClone) -> Self { - Self::ERC1167FailedCreateClone(value) - } - } - impl ::core::convert::From for DFMMErrors { - fn from(value: Invalid) -> Self { - Self::Invalid(value) - } - } - impl ::core::convert::From for DFMMErrors { - fn from(value: InvalidSwap) -> Self { - Self::InvalidSwap(value) - } - } - impl ::core::convert::From for DFMMErrors { - fn from(value: InvalidSwapInputTransfer) -> Self { - Self::InvalidSwapInputTransfer(value) - } - } - impl ::core::convert::From for DFMMErrors { - fn from(value: InvalidSwapOutputTransfer) -> Self { - Self::InvalidSwapOutputTransfer(value) - } - } - impl ::core::convert::From for DFMMErrors { - fn from(value: InvalidTokens) -> Self { - Self::InvalidTokens(value) - } - } - impl ::core::convert::From for DFMMErrors { - fn from(value: Locked) -> Self { - Self::Locked(value) - } - } - impl ::core::convert::From for DFMMErrors { - fn from(value: Min) -> Self { - Self::Min(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(address,uint256,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub delta_x: ::ethers::core::types::U256, - pub delta_y: ::ethers::core::types::U256, - pub delta_l: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(address,uint256,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub delta_x: ::ethers::core::types::U256, - pub delta_y: ::ethers::core::types::U256, - pub delta_l: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Init", - abi = "Init(address,address,address,address,uint256,uint256,uint256,uint256)" - )] - pub struct InitFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub strategy: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_x: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_y: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Swap", abi = "Swap(address,uint256,bool,uint256,uint256)")] - pub struct SwapFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub pool_id: ::ethers::core::types::U256, - pub is_swap_x_for_y: bool, - pub input_amount: ::ethers::core::types::U256, - pub output_amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum DFMMEvents { - AllocateFilter(AllocateFilter), - DeallocateFilter(DeallocateFilter), - InitFilter(InitFilter), - SwapFilter(SwapFilter), - } - impl ::ethers::contract::EthLogDecode for DFMMEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(DFMMEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(DFMMEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = InitFilter::decode_log(log) { - return Ok(DFMMEvents::InitFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(DFMMEvents::SwapFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for DFMMEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::InitFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for DFMMEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for DFMMEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for DFMMEvents { - fn from(value: InitFilter) -> Self { - Self::InitFilter(value) - } - } - impl ::core::convert::From for DFMMEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - ///Container type for all input parameters for the `allocate` function with signature `allocate(uint256,bytes)` and selector `0x2ec38188` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allocate", abi = "allocate(uint256,bytes)")] - pub struct AllocateCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `deallocate` function with signature `deallocate(uint256,bytes)` and selector `0x9d942f9a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deallocate", abi = "deallocate(uint256,bytes)")] - pub struct DeallocateCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `getPool` function with signature `getPool(uint256)` and selector `0x068bcd8d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPool", abi = "getPool(uint256)")] - pub struct GetPoolCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getReservesAndLiquidity` function with signature `getReservesAndLiquidity(uint256)` and selector `0xce153bf4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getReservesAndLiquidity", - abi = "getReservesAndLiquidity(uint256)" - )] - pub struct GetReservesAndLiquidityCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `init` function with signature `init((address,address,address,bytes))` and selector `0x1455f1fc` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "init", abi = "init((address,address,address,bytes))")] - pub struct InitCall { - pub params: InitParams, - } - ///Container type for all input parameters for the `liquidityOf` function with signature `liquidityOf(address,uint256)` and selector `0x3be6a341` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "liquidityOf", abi = "liquidityOf(address,uint256)")] - pub struct LiquidityOfCall { - pub account: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `lpTokenImplementation` function with signature `lpTokenImplementation()` and selector `0xb462cd25` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "lpTokenImplementation", abi = "lpTokenImplementation()")] - pub struct LpTokenImplementationCall; - ///Container type for all input parameters for the `nonce` function with signature `nonce()` and selector `0xaffed0e0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "nonce", abi = "nonce()")] - pub struct NonceCall; - ///Container type for all input parameters for the `pools` function with signature `pools(uint256)` and selector `0xac4afa38` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pools", abi = "pools(uint256)")] - pub struct PoolsCall(pub ::ethers::core::types::U256); - ///Container type for all input parameters for the `swap` function with signature `swap(uint256,bytes)` and selector `0xbd0625ab` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "swap", abi = "swap(uint256,bytes)")] - pub struct SwapCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `update` function with signature `update(uint256,bytes)` and selector `0x0216b838` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "update", abi = "update(uint256,bytes)")] - pub struct UpdateCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum DFMMCalls { - Allocate(AllocateCall), - Deallocate(DeallocateCall), - GetPool(GetPoolCall), - GetReservesAndLiquidity(GetReservesAndLiquidityCall), - Init(InitCall), - LiquidityOf(LiquidityOfCall), - LpTokenImplementation(LpTokenImplementationCall), - Nonce(NonceCall), - Pools(PoolsCall), - Swap(SwapCall), - Update(UpdateCall), - } - impl ::ethers::core::abi::AbiDecode for DFMMCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Allocate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Deallocate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPool(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetReservesAndLiquidity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Init(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::LiquidityOf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::LpTokenImplementation(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Nonce(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Swap(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Update(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for DFMMCalls { - fn encode(self) -> Vec { - match self { - Self::Allocate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deallocate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPool(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetReservesAndLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Init(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::LiquidityOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::LpTokenImplementation(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Nonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Swap(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Update(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for DFMMCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Allocate(element) => ::core::fmt::Display::fmt(element, f), - Self::Deallocate(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPool(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReservesAndLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Init(element) => ::core::fmt::Display::fmt(element, f), - Self::LiquidityOf(element) => ::core::fmt::Display::fmt(element, f), - Self::LpTokenImplementation(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Nonce(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Swap(element) => ::core::fmt::Display::fmt(element, f), - Self::Update(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for DFMMCalls { - fn from(value: AllocateCall) -> Self { - Self::Allocate(value) - } - } - impl ::core::convert::From for DFMMCalls { - fn from(value: DeallocateCall) -> Self { - Self::Deallocate(value) - } - } - impl ::core::convert::From for DFMMCalls { - fn from(value: GetPoolCall) -> Self { - Self::GetPool(value) - } - } - impl ::core::convert::From for DFMMCalls { - fn from(value: GetReservesAndLiquidityCall) -> Self { - Self::GetReservesAndLiquidity(value) - } - } - impl ::core::convert::From for DFMMCalls { - fn from(value: InitCall) -> Self { - Self::Init(value) - } - } - impl ::core::convert::From for DFMMCalls { - fn from(value: LiquidityOfCall) -> Self { - Self::LiquidityOf(value) - } - } - impl ::core::convert::From for DFMMCalls { - fn from(value: LpTokenImplementationCall) -> Self { - Self::LpTokenImplementation(value) - } - } - impl ::core::convert::From for DFMMCalls { - fn from(value: NonceCall) -> Self { - Self::Nonce(value) - } - } - impl ::core::convert::From for DFMMCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for DFMMCalls { - fn from(value: SwapCall) -> Self { - Self::Swap(value) - } - } - impl ::core::convert::From for DFMMCalls { - fn from(value: UpdateCall) -> Self { - Self::Update(value) - } - } - ///Container type for all return fields from the `allocate` function with signature `allocate(uint256,bytes)` and selector `0x2ec38188` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllocateReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `deallocate` function with signature `deallocate(uint256,bytes)` and selector `0x9d942f9a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DeallocateReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `getPool` function with signature `getPool(uint256)` and selector `0x068bcd8d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolReturn(pub Pool); - ///Container type for all return fields from the `getReservesAndLiquidity` function with signature `getReservesAndLiquidity(uint256)` and selector `0xce153bf4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetReservesAndLiquidityReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `init` function with signature `init((address,address,address,bytes))` and selector `0x1455f1fc` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InitReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `liquidityOf` function with signature `liquidityOf(address,uint256)` and selector `0x3be6a341` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct LiquidityOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `lpTokenImplementation` function with signature `lpTokenImplementation()` and selector `0xb462cd25` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct LpTokenImplementationReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `nonce` function with signature `nonce()` and selector `0xaffed0e0` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NonceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `pools` function with signature `pools(uint256)` and selector `0xac4afa38` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PoolsReturn { - pub strategy: ::ethers::core::types::Address, - pub token_x: ::ethers::core::types::Address, - pub token_y: ::ethers::core::types::Address, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - pub liquidity_token: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `swap` function with signature `swap(uint256,bytes)` and selector `0xbd0625ab` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SwapReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///`Pool(address,address,address,uint256,uint256,uint256,address)` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct Pool { - pub strategy: ::ethers::core::types::Address, - pub token_x: ::ethers::core::types::Address, - pub token_y: ::ethers::core::types::Address, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - pub liquidity_token: ::ethers::core::types::Address, - } -} diff --git a/crates/bindings/src/dfmm_init.rs b/crates/bindings/src/dfmm_init.rs deleted file mode 100644 index 286bd3ff7..000000000 --- a/crates/bindings/src/dfmm_init.rs +++ /dev/null @@ -1,3212 +0,0 @@ -pub use dfmm_init::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod dfmm_init { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("IS_TEST"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("IS_TEST"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("POOL_ID"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("POOL_ID"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("TEST_SWAP_FEE"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("TEST_SWAP_FEE"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeArtifacts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeArtifacts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "excludedArtifacts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeContracts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeContracts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "excludedContracts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeSenders"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeSenders"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("excludedSenders_"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("failed"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("failed"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPoolLiquidityToken"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "getPoolLiquidityToken", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("setUp"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("setUp"), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetArtifactSelectors"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "targetArtifactSelectors", - ), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedArtifactSelectors_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzSelector[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetArtifacts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetArtifacts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedArtifacts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetContracts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetContracts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedContracts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetInterfaces"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetInterfaces"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedInterfaces_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzInterface[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetSelectors"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetSelectors"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedSelectors_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzSelector[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetSenders"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetSenders"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetedSenders_"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_DeploysLPTokenClone", - ), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_DeploysLPTokenClone", - ), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("test_DFMM_init_EmitsInitEvent"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_EmitsInitEvent", - ), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("test_DFMM_init_IncrementsPoolId"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_IncrementsPoolId", - ), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_ReturnsStrategyInitialReserves", - ), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_ReturnsStrategyInitialReserves", - ), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_RevertsWhenNotValid", - ), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_RevertsWhenNotValid", - ), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_RevertsWhenSameTokens", - ), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_RevertsWhenSameTokens", - ), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_StoresStrategyInitialReserves", - ), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_StoresStrategyInitialReserves", - ), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_TransfersInitialReserves", - ), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "test_DFMM_init_TransfersInitialReserves", - ), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Init"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Init"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("strategy"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("tokenX"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("tokenY"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_address"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_address"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_array"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_bytes"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_bytes"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_bytes32"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_bytes32"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_int"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_address"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_address"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_array"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_bytes"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_bytes"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_bytes32"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_bytes32"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_decimal_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "log_named_decimal_int", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_decimal_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "log_named_decimal_uint", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_int"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_string"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_string"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_uint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_string"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_string"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_uint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("logs"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("logs"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static DFMMINIT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\x000W`\x01`\xFF\x19\x81\x81`\x07T\x16\x17`\x07U`\x0BT\x16\x17`\x0BU`@Qa}\xE0\x90\x81a\0~\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10\x15b\0\0rW[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x805`\xE0\x1C\x80c\x08Nb8\x14b\0 \xB2W\x80c\n\x92T\xE4\x14b\0\x1C\xC5W\x80c\x0B\xBC\xC1\xA6\x14b\0\x1B\xABW\x80c\x1E\xD7\x83\x1C\x14b\0\x1B%W\x80c)\x8F\"\xBA\x14b\0\x19{W\x80c*\xDE8\x80\x14b\0\x16\xE6W\x80c>^<#\x14b\0\x16`W\x80c?r\x86\xF4\x14b\0\x15\xDAW\x80cQm*_\x14b\0\x14\x9EW\x80cXk\xE2\xF9\x14b\0\x12eW\x80cb\n&\x07\x14b\0\x12BW\x80cf\xD9\xA9\xA0\x14b\0\x10\xACW\x80c\x7F:E\xDA\x14b\0\x0F\xA4W\x80c\x85\"l\x81\x14b\0\x0EeW\x80c\x8F\tOk\x14b\0\t^W\x80c\x91j\x17\xC6\x14b\0\x06\xE2W\x80c\xB5P\x8A\xA9\x14b\0\x05\x8FW\x80c\xBAAO\xA6\x14b\0\x05gW\x80c\xC8@\xA3\x9E\x14b\0\x03\xC5W\x80c\xE0\xD7\xD0\xE9\x14b\0\x03\xA6W\x80c\xE2\x0C\x9Fq\x14b\0\x03\x0FW\x80c\xE2\x14\x85\xAD\x14b\0\x01\xC2Wc\xFAv&\xD4\x14b\0\x01\x93WPb\0\0\x0FV[4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W` `\xFF`\x07T\x16`@Q\x90\x15\x15\x81R\xF3[b\0\"yV[b\0\")V[P4b\0\x01\xBCW` 6`\x03\x19\x01\x12b\0\x01\xB6W`\x1CT`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x80;\x15b\0\x03\tW`\xE0`$\x91`@Q\x92\x83\x80\x92c\x06\x8B\xCD\x8D\x85\x1B\x82R`\x045`\x04\x83\x01RZ\xFA\x92\x83\x15b\0\x02\xFDW\x92b\0\x02+W[P`\xC0` \x92\x01Q\x16`@Q\x90\x81R\xF3[\x91P`\xE0\x82=`\xE0\x11b\0\x02\xF4W[\x81b\0\x02I`\xE0\x93\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6W`@Q`\xE0\x81\x01\x90\x80\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17b\0\x02\xDEWb\0\x02\xD2`\xC0` \x95\x81\x94`@Rb\0\x02\x87\x81b\0%\xB0V[\x84Rb\0\x02\x96\x87\x82\x01b\0%\xB0V[\x87\x85\x01Rb\0\x02\xA8`@\x82\x01b\0%\xB0V[`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01b\0%\xB0V[\x82\x82\x01R\x92Pb\0\x02\x1AV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[=\x91Pb\0\x02:V[`@Q\x90=\x90\x82>=\x90\xFD[b\0$\xF4V[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x13\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90\x92\x91[\x82\x82\x10b\0\x03\x85Wb\0\x03\x81\x85b\0\x03t\x81\x89\x03\x82b\0$\xD1V[`@Q\x91\x82\x91\x82b\0\"\xC9V[\x03\x90\xF3[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x03YV[P4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W` `!T`@Q\x90\x81R\xF3[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x01` \x82\x01R` \x81Rb\0\x03\xF1\x81b\0$\xB4V[` T`@Q\x91`\x01`\x01`\xA0\x1B\x03\x91\x82\x16b\0\x04\x0E\x84b\0$\x82V[\x83Ra\xBE\xEF` \x84\x01Ra\xDE\xAD`@\x84\x01R``\x83\x01R\x80`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x04X`\x80\x91\x85\x94`@Q\x95\x86\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x91\x82\x15b\0\x05\\W\x83\x92b\0\x05!W[P`\x1CT\x16\x90\x81;\x15b\0\x03\tW``\x90`$`@Q\x80\x94\x81\x93c3\x85N\xFD`\xE2\x1B\x83R`\x04\x83\x01RZ\xFA\x90\x81\x15b\0\x05\x16Wb\0\x04\xCD\x91\x83\x84\x90\x85\x92b\0\x04\xD0W[b\0\x04\xC7\x92\x93Pb\0\x04\xC1\x90b\0(\x9BV[b\0)~V[b\0)\x93V[\x80\xF3[PPPb\0\x04\xC7b\0\x05\x01b\0\x04\xC1\x92``=``\x11b\0\x05\x0EW[b\0\x04\xF8\x81\x83b\0$\xD1V[\x81\x01\x90b\0%\xE3V[\x91\x93P\x90\x91P\x82b\0\x04\xAFV[P=b\0\x04\xECV[`@Q=\x84\x82>=\x90\xFD[b\0\x05I\x91\x92P`\x80=`\x80\x11b\0\x05TW[b\0\x05@\x81\x83b\0$\xD1V[\x81\x01\x90b\0%GV[PPP\x908b\0\x04lV[P=b\0\x054V[`@Q=\x85\x82>=\x90\xFD[P4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W` b\0\x05\x85b\0&\x8FV[`@Q\x90\x15\x15\x81R\xF3[P4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W`\x17Tb\0\x05\xAF\x81b\0%\xCAV[b\0\x05\xBE`@Q\x91\x82b\0$\xD1V[\x81\x81R` \x91\x82\x82\x01`\x17`\0R\x7F\xC6$\xB6l\xC0\x13\x8B\x8F\xAB\xC2\t$\x7Fr\xD7X\xE1\xCF3CumT;\xAD\xBF$!+\xED\x8C\x15\x90`\0\x90[\x83\x82\x10b\0\x06\nW`@Q\x80b\0\x03\x81\x87\x82b\0$\x1AV[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x06\xD7W[\x8B\x83\x10\x81\x14b\0\x06\xC3W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x06\xA5WP`\x01\x14b\0\x06hW[Pb\0\x06Y\x81`\x01\x96\x03\x82b\0$\xD1V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x05\xF2V[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x06\x8DWP\x81\x01\x83\x01\x94Pb\0\x06Yb\0\x06HV[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x06tV[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x06Yb\0\x06HV[cNH{q`\xE0\x1B\x87R`\"`\x04R`$\x87\xFD[\x91`\x7F\x16\x91b\0\x06%V[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`\x1ATb\0\x07\x03\x81b\0%\xCAV[\x90b\0\x07\x13`@Q\x92\x83b\0$\xD1V[\x80\x82R`\x1A\x83R\x82\x7F\x05|8J}\x1CT\xF3\xA1\xB2\xE5\xE6{&\x17\xB8\"O\xDF\xD1\xEAr4\xEE\xA5s\xA6\xFFf_\xF6>` \x84\x01[\x83\x83\x10b\0\x07YW`@Q\x80b\0\x03\x81\x87\x82b\0#\\V[`@Qb\0\x07g\x81b\0$\xB4V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\x08\xEEW\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\x07\xFD\x94T\x91\x81\x81\x10b\0\x08\xD1W[\x81\x81\x10b\0\x08\xB4W[\x81\x81\x10b\0\x08\x97W[\x81\x81\x10b\0\x08zW[\x81\x81\x10b\0\x08]W[\x81\x81\x10b\0\x08@W[\x81\x81\x10b\0\x08%W[\x10b\0\x08\x10W[P\x03\x82b\0$\xD1V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x07AV[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x86\x018b\0\x07\xF4V[\x82\x8A\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xEDV[`@\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xE4V[``\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xDBV[`\x80\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xD2V[`\xA0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xC9V[`\xC0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xC0V[`\xE0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xB7V[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\x07\x8FV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q` `\x01\x81\x83\x01R\x80\x82Rb\0\t\x8A\x82b\0$\xB4V[\x80T`\x1ET`\x1FT`@Q\x94`\x01`\x01`\xA0\x1B\x03\x93\x92\x84\x16\x92\x91\x84\x16\x91\x84\x16b\0\t\xB4\x87b\0$\x82V[\x86R\x82\x85\x87\x01R\x81`@\x87\x01R``\x86\x01R\x82`\x1CT\x16\x92\x82;\x15b\0\x03\tW`@Q\x95cp\xA0\x821`\xE0\x1B\x93\x84\x88R\x85`\x04\x89\x01R`$\x95\x87\x89\x88\x81\x85Z\xFA\x98\x89\x15b\0\x0C\xA4W\x8A\x99b\0\x0E0W[P\x84;\x15b\0\x03\tW`@Q\x90\x86\x82R\x80`\x04\x83\x01R\x88\x82\x89\x81\x89Z\xFA\x91\x82\x15b\0\x0C\xEAW\x8B\x92b\0\r\xFBW[P\x82;\x15b\0\x03\tW\x88\x88\x93`@Q\x94\x85\x80\x92\x8B\x82R0`\x04\x83\x01RZ\xFA\x92\x83\x15b\0\x0C\xEAW\x8B\x93b\0\r\xC6W[P\x85;\x15b\0\x03\tW\x88\x88\x96`@Q\x99\x8A\x80\x92\x8B\x82R0`\x04\x83\x01RZ\xFA\x97\x88\x15b\0\x0C\xEAW\x8B\x98b\0\r\x91W[P\x80;\x15b\0\x03\tWb\0\n\xBC`\x80\x91\x8C\x95`@Q\x96\x87\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x92\x83\x15b\0\x0C\xA4W\x8A\x93b\0\rhW[P\x83`\x1CT\x16\x80;\x15b\0\x03\tW`@Q\x93c3\x85N\xFD`\xE2\x1B\x85R`\x04\x85\x01R``\x84\x87\x81\x84Z\xFA\x99\x8A\x15b\0\x0C\xEAW\x8B\x94\x8C\x9Bb\0\r;W[P\x85`\x1ET\x16\x91\x82;\x15b\0\x03\tW\x8A\x90\x88`@Q\x80\x95\x81\x93\x8D\x83R`\x04\x83\x01RZ\xFA\x90\x81\x15b\0\r0W\x85\x92\x8D\x92b\0\x0C\xF5W[Pb\0\x0BX\x92b\0\x0BQ\x91b\0%\xFFV[\x90b\0)\xA8V[\x83`\x1FT\x16\x90\x84`\x1CT\x16\x82;\x15b\0\x03\tW\x89\x90\x87`@Q\x80\x95\x81\x93\x8C\x83R`\x04\x83\x01RZ\xFA\x90\x81\x15b\0\x0C\xEAW\x8A\x92\x8C\x92b\0\x0C\xAFW[Pb\0\x0B\xA2\x92b\0\x0BQ\x91b\0%\xFFV[\x82`\x1ET\x16\x90\x81;\x15b\0\x03\tW\x87\x85\x92`@Q\x93\x84\x80\x92\x8A\x82R0`\x04\x83\x01RZ\xFA\x91\x82\x15b\0\x0C\xA4W\x8A\x92b\0\x0ClW[Pb\0\x0B\xE6\x92b\0\x0BQ\x91b\0&#V[`\x1FT\x16\x91\x82;\x15b\0\x03\tW\x84\x91`@Q\x80\x94\x81\x93\x82R0`\x04\x83\x01RZ\xFA\x92\x83\x15b\0\x0CaW\x85\x93b\0\x0C(W[PPb\0\x04\xCD\x92b\0\x0BQ\x91b\0&#V[\x90\x80\x92\x93P\x81=\x83\x11b\0\x0CYW[b\0\x0CC\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x90\x82b\0\x0BQb\0\x0C\x16V[P=b\0\x0C7V[`@Q=\x87\x82>=\x90\xFD[\x90\x91P\x87\x81\x81=\x83\x11b\0\x0C\x9CW[b\0\x0C\x87\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x90b\0\x0B\xE6b\0\x0B\xD5V[P=b\0\x0C{V[`@Q=\x8C\x82>=\x90\xFD[\x92P\x90P\x88\x82\x81=\x81\x11b\0\x0C\xE2W[b\0\x0C\xCB\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6W\x90Q\x89\x91b\0\x0B\xA2b\0\x0B\x91V[P=b\0\x0C\xBFV[`@Q=\x8D\x82>=\x90\xFD[\x92P\x90P\x89\x82\x81=\x81\x11b\0\r(W[b\0\r\x11\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6W\x90Q\x84\x91b\0\x0BXb\0\x0B@V[P=b\0\r\x05V[`@Q=\x8E\x82>=\x90\xFD[\x90\x9APb\0\r\\\x91\x94P``=``\x11b\0\x05\x0EWb\0\x04\xF8\x81\x83b\0$\xD1V[P\x93\x90\x93\x998b\0\x0B\x0BV[b\0\r\x86\x91\x93P`\x80=`\x80\x11b\0\x05TWb\0\x05@\x81\x83b\0$\xD1V[PPP\x918b\0\n\xD0V[\x90\x97P\x88\x81\x81=\x83\x11b\0\r\xBEW[b\0\r\xAC\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x968b\0\n\x8DV[P=b\0\r\xA0V[\x90\x92P\x88\x81\x81=\x83\x11b\0\r\xF3W[b\0\r\xE1\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x918b\0\n_V[P=b\0\r\xD5V[\x90\x91P\x88\x81\x81=\x83\x11b\0\x0E(W[b\0\x0E\x16\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x908b\0\n1V[P=b\0\x0E\nV[\x90\x98P\x87\x81\x81=\x83\x11b\0\x0E]W[b\0\x0EK\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x978b\0\n\x04V[P=b\0\x0E?V[P4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W`\x18Tb\0\x0E\x85\x81b\0%\xCAV[b\0\x0E\x94`@Q\x91\x82b\0$\xD1V[\x81\x81R` \x91\x82\x82\x01`\x18`\0R\x7F\xB1=-v\xD1\xF4\xB7\xBE\x83H\x82\xE4\x10\xB3\xE3\xA8\xAF\xAFi\xF86\0\xAE$\xDB5C\x91\xD27\x8D.\x90`\0\x90[\x83\x82\x10b\0\x0E\xE0W`@Q\x80b\0\x03\x81\x87\x82b\0$\x1AV[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x0F\x99W[\x8B\x83\x10\x81\x14b\0\x06\xC3W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x0F{WP`\x01\x14b\0\x0F>W[Pb\0\x0F/\x81`\x01\x96\x03\x82b\0$\xD1V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x0E\xC8V[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x0FcWP\x81\x01\x83\x01\x94Pb\0\x0F/b\0\x0F\x1EV[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x0FJV[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x0F/b\0\x0F\x1EV[\x91`\x7F\x16\x91b\0\x0E\xFBV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x01` \x82\x01R` \x81Rb\0\x0F\xD0\x81b\0$\xB4V[` T`@Q\x91`\x01`\x01`\xA0\x1B\x03\x91\x82\x16b\0\x0F\xED\x84b\0$\x82V[\x83Ra\xBE\xEF` \x84\x01Ra\xDE\xAD`@\x84\x01R``\x83\x01R`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x106`\x80\x91\x84\x93`@Q\x94\x85\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x90\x81\x15b\0\x05\x16Wb\0\x04\xCD\x91\x83\x84\x85\x91\x86\x93b\0\x10pW[b\0\x04\xC7\x93\x94P\x90b\0\x10jb\0\x04\xC1\x92b\0'\xC3V[b\0(\x9BV[PPPPb\0\x04\xC7b\0\x04\xC1b\0\x10\x9Cb\0\x10j\x93`\x80=`\x80\x11b\0\x05TWb\0\x05@\x81\x83b\0$\xD1V[\x92\x95P\x91\x93P\x90\x91P\x83b\0\x10SV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`\x19Tb\0\x10\xCD\x81b\0%\xCAV[\x90b\0\x10\xDD`@Q\x92\x83b\0$\xD1V[\x80\x82R`\x19\x83R\x82\x7F\x94I\x98'>G{IQD\xFB\x87\x94\xC9\x14\x19\x7F<\xCBF\xBE)\0\xF4i\x8F\xD0\xEFt<\x96\x95` \x84\x01[\x83\x83\x10b\0\x11#W`@Q\x80b\0\x03\x81\x87\x82b\0#\\V[`@Qb\0\x111\x81b\0$\xB4V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\x11\xD2W\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\x11\xBF\x94T\x91\x81\x81\x10b\0\x08\xD1W\x81\x81\x10b\0\x08\xB4W\x81\x81\x10b\0\x08\x97W\x81\x81\x10b\0\x08zW\x81\x81\x10b\0\x08]W\x81\x81\x10b\0\x08@W\x81\x81\x10b\0\x08%W\x10b\0\x08\x10WP\x03\x82b\0$\xD1V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x11\x0BV[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\x11YV[P4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W` `@Qf\n\xA8{\xEES\x80\0\x81R\xF3[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q` \x90`\x01\x82\x82\x01R\x81\x81Rb\0\x12\x92\x81b\0$\xB4V[\x81T`@Q`\x01`\x01`\xA0\x1B\x03\x93\x90\x92\x90\x91\x84\x16b\0\x12\xB1\x84b\0$\x82V[\x83Ra\xBE\xEF\x82\x84\x01Ra\xDE\xAD`@\x84\x01R``\x83\x01R\x82`\x1CT\x16\x80;\x15b\0\x03\tW`@Q\x93\x84c\x05\x15|\x7F`\xE2\x1B\x92\x83\x82R`\x80\x96\x87\x91\x81\x8A\x81b\0\x12\xFC\x8B`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x80\x15b\0\x14\x93Wb\0\x13\x1B\x91\x88\x91b\0\x14nW[Pb\0'\xC3V[`\x1CT\x16\x92\x83;\x15b\0\x03\tWb\0\x13E\x93\x85\x92\x87`@Q\x80\x97\x81\x95\x82\x94\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x91\x82\x15b\0\x14cW\x84\x92b\0\x14=\x90\xFD[b\0\x14\x89\x91P\x87=\x89\x11b\0\x05TWb\0\x05@\x81\x83b\0$\xD1V[PPP8b\0\x13\x14V[`@Q=\x89\x82>=\x90\xFD[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W` T`@Q\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x16b\0\x14\xCE\x83b\0$\x82V[\x82Ra\xBE\xEF\x80` \x84\x01R`@\x83\x01R`@Q` \x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02\xDEW`@R\x83\x81R``\x83\x01Rsq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;\x15b\0\x03\tW`@Qc\x06\x18\xF5\x87`\xE5\x1B\x81Rc3\x91\n\xEF`\xE1\x1B`\x04\x82\x01R\x84\x91\x82\x90\x82\x90`$\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x05\x16Wb\0\x15\xC2W[PP`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x15\x8B`\x80\x91\x84\x93`@Q\x94\x85\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x80\x15b\0\x05\x16Wb\0\x15\x9FWP\x80\xF3[b\0\x15\xBB\x90`\x80=`\x80\x11b\0\x05TWb\0\x05@\x81\x83b\0$\xD1V[PPPP\x80\xF3[b\0\x15\xCD\x90b\0$\x9FV[b\0\x01\xB6W\x828b\0\x15WV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x15\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7FU\xF4H\xFD\xEA\x98\xC4\xD2\x9E\xB3@u~\xF0\xA6l\xD0=\xBB\x958\x90\x8Aj\x81\xD9`&\xB7\x1E\xC4u\x92\x91[\x82\x82\x10b\0\x16?Wb\0\x03\x81\x85b\0\x03t\x81\x89\x03\x82b\0$\xD1V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x16$V[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x16\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xD83\x14}}\xC3U\xBAE\x9F\xC7\x88\xF6i\xE5\x8C\xFA\xF9\xDC%\xDD\xCD\x07\x02\xE8}i\xC7\xB5\x12B\x89\x92\x91[\x82\x82\x10b\0\x16\xC5Wb\0\x03\x81\x85b\0\x03t\x81\x89\x03\x82b\0$\xD1V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x16\xAAV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`\x1BT\x90b\0\x17\x08\x82b\0%\xCAV[b\0\x17\x17`@Q\x91\x82b\0$\xD1V[\x82\x81R` \x81\x01\x80\x93`\x1B\x84R\x7F:\xD8\xAAO\x87TC#\xA9\xD1\xE5\xDD\x90/@\xC3VRzyUhq\x13\xDB_\x9A\x85\xADW\x9D\xC1\x84\x92[\x82\x84\x10b\0\x18!W\x85\x85\x88`@Q\x91` \x83\x01\x90` \x84RQ\x80\x91R`@\x83\x01`\x05\x90`@\x83`\x05\x1B\x86\x01\x01\x93\x95\x80\x92[\x84\x84\x10b\0\x17\x87W\x86\x86\x03\x87\xF3[\x90\x91\x92\x93\x94`?\x19\x87\x82\x03\x01\x84R\x87Q\x90` `@\x82\x01\x92`\x01\x80`\xA0\x1B\x03\x81Q\x16\x83R\x01Q\x91`@` \x83\x01R\x82Q\x80\x91R``\x90` \x82\x84\x01\x92\x82\x87\x1B\x85\x01\x01\x94\x01\x92\x86[\x82\x81\x10b\0\x17\xF3WPPPPP` \x80`\x01\x92\x99\x01\x94\x01\x94\x01\x92\x96\x94\x93\x91\x90b\0\x17yV[\x90\x91\x92\x93\x94` \x80b\0\x18\x13`\x01\x93`_\x19\x87\x82\x03\x01\x89R\x89Qb\0#5V[\x97\x01\x95\x01\x93\x92\x91\x01b\0\x17\xCEV[`@Qb\0\x18/\x81b\0$\xB4V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`\x01\x83\x01\x80T\x90b\0\x18N\x82b\0%\xCAV[\x91b\0\x18^`@Q\x93\x84b\0$\xD1V[\x80\x83R` \x83\x01\x91`\0R` `\0 `\0\x92[\x82\x84\x10b\0\x18\x9AWPPPP`\x01\x92\x82` \x92\x83`\x02\x95\x01R\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x17HV[`@Q`\0\x83T\x80`\x01\x1C\x90`\x01\x81\x16\x15b\0\x19pW[` \x82\x10`\x01\x82\x16\x14b\0\x19\\W\x81\x84R`\x01\x81\x16\x90\x81\x15b\0\x198WP`\x01\x14b\0\x18\xFDW[P`\x01\x92\x82b\0\x18\xEE\x85\x94` \x94\x03\x82b\0$\xD1V[\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x18rV[`\0\x85\x81R` \x81 \x90\x92P[\x81\x83\x10b\0\x19!WPP\x81\x01` \x01`\x01b\0\x18\xD8V[`\x01\x81` \x92T\x83\x86\x88\x01\x01R\x01\x92\x01\x91b\0\x19\nV[`\xFF\x19\x16` \x85\x81\x01\x91\x90\x91R\x91\x15\x15`\x05\x1B\x84\x01\x90\x91\x01\x91P`\x01\x90Pb\0\x18\xD8V[cNH{q`\xE0\x1B\x83R`\"`\x04R`$\x83\xFD[\x90`\x7F\x16\x90b\0\x18\xB1V[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`\x01\x80`\xA0\x1B\x03\x80` T\x16\x90\x80`\x1ET\x16\x81`\x1FT\x16`@Q\x91`\x02` \x84\x01R` \x83Rb\0\x19\xBF\x83b\0$\xB4V[`@Q\x94b\0\x19\xCE\x86b\0$\x82V[\x85R` \x85\x01R`@\x84\x01R``\x83\x01R\x80`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x1A\x12`\x80\x91\x85\x94`@Q\x95\x86\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x91\x82\x15b\0\x05\\W\x83\x92b\0\x1A\xFCW[P\x81`!U\x80`\x1CT\x16\x91\x82;\x15b\0\x03\tW`\xE0\x90`$`@Q\x80\x95\x81\x93c\x15\x89_G`\xE3\x1B\x83R`\x04\x83\x01RZ\xFA\x91\x82\x15b\0\x05\\W\x83\x92b\0\x1A\x84W[P\x90b\0\x1A{b\0\x04\xCD\x92\x82\x16\x15\x15b\0'hV[;\x15\x15b\0'hV[\x91P`\xE0\x82=`\xE0\x11b\0\x1A\xF3W[\x81b\0\x1A\xA2`\xE0\x93\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6Wb\0\x1A{b\0\x1A\xEB`\xC0\x84b\0\x1A\xC5b\0\x04\xCD\x96b\0%\xB0V[Pb\0\x1A\xD4` \x82\x01b\0%\xB0V[Pb\0\x1A\xE3`@\x82\x01b\0%\xB0V[P\x01b\0%\xB0V[\x92Pb\0\x1AfV[=\x91Pb\0\x1A\x93V[b\0\x1B\x1A\x91\x92P`\x80=`\x80\x11b\0\x05TWb\0\x05@\x81\x83b\0$\xD1V[PPP\x908b\0\x1A&V[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x14\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xCEm{R\x82\xBD\x9A6a\xAE\x06\x1F\xEE\xD1\xDB\xDANR\xAB\x07;\x1F\x92\x85\xBEn\x15]\x9C8\xD4\xEC\x92\x91[\x82\x82\x10b\0\x1B\x8AWb\0\x03\x81\x85b\0\x03t\x81\x89\x03\x82b\0$\xD1V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x1BoV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W` \x80T`@Q\x80\x83\x01\x84\x90R\x82\x81R`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x92\x90b\0\x1B\xE6\x81b\0$\xB4V[`@Q\x93b\0\x1B\xF5\x85b\0$\x82V[\x84Ra\xBE\xEF\x82\x85\x01Ra\xDE\xAD`@\x85\x01R``\x84\x01R`@Q\x90cw`m)`\xE1\x1B\x81\x83\x01R\x84`$\x83\x01R\x84`D\x83\x01R`D\x82Rb\0\x1C6\x82b\0$\x82V[sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x90\x81;\x15b\0\x03\tW\x85\x92b\0\x1C\x81\x92\x84\x92\x83`@Q\x80\x96\x81\x95\x82\x94c\xF2\x8D\xCE\xB3`\xE0\x1B\x84R`\x04\x84\x01R`$\x83\x01\x90b\0#5V[\x03\x92Z\xF1\x80\x15b\0\x05\x16Wb\0\x15\xC2WPP`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x15\x8B`\x80\x91\x84\x93`@Q\x94\x85\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Qa\x13\x01\x80\x82\x01\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x84\x10\x81\x85\x11\x17b\0 \x9EWb\0*[\x91\x83\x83\x829``\x85R`\x06``\x86\x01Re\x0E\x8D\xEDl\xAD\xCB`\xD3\x1B`\x80\x86\x01R`\xE0\x81` \x96`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`\x0B`\xFB\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x92\x83\x15b\0\x0CaW`\x01\x80`\xA0\x1B\x03\x92\x83k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x95\x16\x85`\x1ET\x16\x17`\x1EU`@Q\x91\x80\x83\x01\x91\x83\x83\x10\x85\x84\x11\x17b\0 \x8AW\x91\x83\x91`\xE0\x93\x839``\x81R`\x06``\x82\x01RetokenY`\xD0\x1B`\x80\x82\x01R`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`Y`\xF8\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x80\x15b\0\x0CaW\x82\x16\x83`\x1FT\x16\x17`\x1FU\x81`\x1ET\x16\x90\x81;\x15b\0\x03\tW`@Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01R\x87h\x05k\xC7^-c\x10\0\0\x92\x81\x81`D\x81\x83`$\x9A\x89\x8C\x84\x01RZ\xF1\x80\x15b\0\x05\x16Wb\0 rW[PP\x84`\x1FT\x16\x90\x81;\x15b\0\x03\tW\x88\x92`D\x84\x92\x83`@Q\x95\x86\x94\x85\x93\x84R0`\x04\x85\x01R\x8A\x84\x01RZ\xF1\x80\x15b\0\x05\x16Wb\0 ZW[PP\x82`\x1ET\x16\x83`\x1FT\x16\x90`@Q\x91a\x07\xA1\x91\x82\x84\x01\x92\x84\x84\x10\x86\x85\x11\x17b\0 GW\x91``\x93\x91\x85\x93b\0m\x85\x859\x82R\x89\x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R\x03\x01\x90\x87\xF0\x80\x15b\0 )W\x83\x16\x84`\x1DT\x16\x17`\x1DU`@Qa0)\x80\x82\x01\x90\x82\x82\x10\x84\x83\x11\x17b\0 4W\x90\x82\x91b\0=\\\x839\x03\x90\x87\xF0\x80\x15b\0 )W\x83\x16`\x1CT\x81\x86\x82\x16\x17`\x1CU\x84`\x1ET\x16\x91\x82;\x15b\0\x03\tW`@Q\x90\x89c\t^\xA7\xB3`\xE0\x1B\x93\x84\x84R\x16\x17`\x04\x82\x01R\x87\x81`D\x81\x8C`\0\x19\x97\x88\x8B\x84\x01RZ\xF1\x80\x15b\0 \x1EWb\0\x1F\xFCW[P\x84`\x1FT\x16\x85`\x1CT\x16\x90\x80;\x15b\0\x03\tW\x88\x92\x8A`D\x92`@Q\x96\x87\x95\x86\x94\x85R`\x04\x85\x01R\x89\x84\x01RZ\xF1\x80\x15b\0\x14\x93Wb\0\x1F\xC8W[P\x82`\x1CT\x16`@Q\x92a\x08e\x90\x81\x85\x01\x93\x85\x85\x10\x90\x85\x11\x17b\0\x1F\xB6WP\x91\x83\x91\x87\x93b\0u&\x849\x81R\x03\x01\x90\x85\xF0\x80\x15b\0\x14cW\x16\x90\x82T\x16\x17\x90U\x80\xF3[cNH{q`\xE0\x1B\x89R`A`\x04R\x88\xFD[b\0\x1F\xEC\x90\x86=\x88\x11b\0\x1F\xF4W[b\0\x1F\xE3\x81\x83b\0$\xD1V[\x81\x01\x90b\0&uV[P8b\0\x1FsV[P=b\0\x1F\xD7V[b\0 \x16\x90\x88=\x8A\x11b\0\x1F\xF4Wb\0\x1F\xE3\x81\x83b\0$\xD1V[P8b\0\x1F7V[`@Q=\x8B\x82>=\x90\xFD[`@Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x89R`A`\x04R\x84\x89\xFD[cNH{q`\xE0\x1B\x8BR`A`\x04R\x86\x8B\xFD[b\0 e\x90b\0$\x9FV[b\0\x01\xB6W\x858b\0\x1E_V[b\0 }\x90b\0$\x9FV[b\0\x01\xB6W\x878b\0\x1E%V[cNH{q`\xE0\x1B\x89R`A`\x04R`$\x89\xFD[cNH{q`\xE0\x1B\x85R`A`\x04R`$\x85\xFD[P4b\0\")W\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q` \x90`\x01\x82\x82\x01R\x81\x81Rb\0 \xDF\x81b\0$\xB4V[\x81T`@Q\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x16b\0 \xFC\x85b\0$\x82V[\x84Ra\xBE\xEF\x90\x81\x81\x86\x01Ra\xDE\xAD\x92\x83`@\x87\x01R``\x86\x01R\x83`\x1CT\x16sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x90\x81;\x15b\0\x03\tW\x87\x91`\xA4\x83\x92`@Q\x94\x85\x93\x84\x92c\x81\xBA\xD6\xF3`\xE0\x1B\x84R`\x01`\x04\x85\x01R`\x01`$\x85\x01R`\x01`D\x85\x01R`\x01`d\x85\x01R`\x84\x84\x01RZ\xF1\x80\x15b\0\x14\x93Wb\0\"\x13W[P\x85\x84\x82T\x16\x91`@Q\x92\x83R\x82\x01Rg\x1B\xC1mgN\xC8\0\0`@\x82\x01Rg)\xA2$\x1A\xF6,\0\0``\x82\x01Rg7\x82\xDA\xCE\x9D\x90\0\0`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA00\x92\xA4`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x15\x8B`\x80\x91\x84\x93`@Q\x94\x85\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[b\0\"!\x90\x96\x91\x96b\0$\x9FV[\x948b\0!\x81V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[` \x90` `@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10b\0\"\xF2WPPPP\x90V[\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01b\0\"\xE3V[`\0[\x83\x81\x10b\0#$WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01b\0#\x13V[\x90` \x91b\0#P\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0#\x10V[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01\x82`@\x85`\x05\x1B\x84\x01\x01\x96\x01\x94`\0\x80\x93[\x86\x85\x10b\0#\x96WPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x80\x96\x97\x98`?\x19\x83\x82\x03\x01\x86R\x89Q\x82``\x81\x88\x85\x01\x93`\x01\x80`\xA0\x1B\x03\x81Q\x16\x86R\x01Q\x93\x88\x83\x82\x01R\x84Q\x80\x94R\x01\x92\x01\x90\x85\x90[\x80\x82\x10b\0#\xF5WPPP\x90\x80`\x01\x92\x9A\x01\x95\x01\x95\x01\x93\x96\x95\x94\x92\x91\x90b\0#\x83V[\x82Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x8A\x94\x93\x84\x01\x93\x90\x92\x01\x91`\x01\x91\x90\x91\x01\x90b\0#\xD2V[` \x80\x82\x01\x90` \x83R\x83Q\x80\x92R`@\x83\x01\x92` `@\x84`\x05\x1B\x83\x01\x01\x95\x01\x93`\0\x91[\x84\x83\x10b\0$QWPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x84\x80b\0$q`\x01\x93`?\x19\x86\x82\x03\x01\x87R\x8AQb\0#5V[\x98\x01\x93\x01\x93\x01\x91\x94\x93\x92\x90b\0$@V[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02\xDEW`@RV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02\xDEW`@RV[`@\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02\xDEW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02\xDEW`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\x80\x91\x03\x12b\0\x01\xB6W\x81Q\x91` \x81\x01Q\x91```@\x83\x01Q\x92\x01Q\x90V[`\xA0``b\0%\xAD\x93` \x84R`\x01\x80\x84\x1B\x03\x80\x82Q\x16` \x86\x01R\x80` \x83\x01Q\x16`@\x86\x01R`@\x82\x01Q\x16\x82\x85\x01R\x01Q\x91`\x80\x80\x82\x01R\x01\x90b\0#5V[\x90V[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0%\xC5WV[`\0\x80\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02\xDEW`\x05\x1B` \x01\x90V[\x90\x81``\x91\x03\x12b\0\x01\xB6W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[\x91\x90\x82\x01\x80\x92\x11b\0&\rWV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x91\x90\x82\x03\x91\x82\x11b\0&\rWV[=\x15b\0&pW=\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11b\0\x02\xDEW`@Q\x91b\0&d`\x1F\x82\x01`\x1F\x19\x16` \x01\x84b\0$\xD1V[\x82R=`\0` \x84\x01>V[``\x90V[\x90\x81` \x91\x03\x12b\0\x01\xB6WQ\x80\x15\x15\x81\x03b\0%\xC5W\x90V[`\x07T`\x08\x1C`\xFF\x16\x15b\0&\xAAW`\xFF`\x07T`\x08\x1C\x16\x90V[`\0sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0&\xCCWP\x90V[`@\x80Q` \x81\x01\x83\x81Re\x19\x98Z[\x19Y`\xD2\x1B\x82\x84\x01R\x91\x81R``\x81\x01\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x81\x83\x10\x17b\0 \x9EW\x81b\0'E`$\x87\x96\x95\x94\x93\x87\x94`@R`\x80\x81\x01\x95c\x06g\xF9\xD7`\xE4\x1B\x87Rb\0'4\x82Q\x80\x92`\x84\x85\x01\x90b\0#\x10V[\x81\x01\x03`\x04\x81\x01\x84R\x01\x82b\0$\xD1V[Q\x92Z\xF1Pb\0%\xADb\0'Xb\0&1V[` \x80\x82Q\x83\x01\x01\x91\x01b\0&uV[\x15b\0'pWV[`\0\x80Q` b\0}\x8B\x839\x81Q\x91R```@Q` \x81R`\x17` \x82\x01R\x7FError: Assertion Failed\0\0\0\0\0\0\0\0\0`@\x82\x01R\xA1b\0'\xC1b\0)\xB5V[V[\x80b\0'\xCCWPV[`\x80\x80\x91`@\x90`\0\x80Q` b\0}\x8B\x839\x81Q\x91R\x83\x83Q` \x81R`\"` \x82\x01R\x7FError: a == b not satisfied [uin\x85\x82\x01Rat]`\xF0\x1B``\x82\x01R\xA1\x81Q\x90\x82\x82R`\n\x83\x83\x01Ri\x08\x08\x08\x08\x08\x08\x13\x19Y\x9D`\xB2\x1B``\x83\x01R` \x82\x01R\x7F\xB2\xDE/\xBE\x80\x1A\r\xF6\xC0\xCB\xDD\xFDD\x8B\xA3\xC4\x1DH\xA0@\xCA5\xC5l\x81\x96\xEF\x0F\xCA\xE7!\xA8\x93\x84\x91\xA1`\n\x81Q\x91\x80\x83R\x82\x01Ri\x08\x08\x08\x08\x08\x14\x9AY\xDA\x1D`\xB2\x1B``\x82\x01R`\0` \x82\x01R\xA1b\0'\xC1b\0)\xB5V[g\x1B\xC1mgN\xC8\0\0\x80\x82\x03b\0(\xB0WPPV[`\x80\x91\x82\x91`@\x91`\0\x80Q` b\0}\x8B\x839\x81Q\x91R\x84\x84Q` \x81R`\"` \x82\x01R\x7FError: a == b not satisfied [uin\x86\x82\x01Rat]`\xF0\x1B``\x82\x01R\xA1\x82Q\x90\x83\x82R`\n\x84\x83\x01Ri\x08\x08\x08\x08\x08\x08\x13\x19Y\x9D`\xB2\x1B``\x83\x01R` \x82\x01R\x7F\xB2\xDE/\xBE\x80\x1A\r\xF6\xC0\xCB\xDD\xFDD\x8B\xA3\xC4\x1DH\xA0@\xCA5\xC5l\x81\x96\xEF\x0F\xCA\xE7!\xA8\x94\x85\x91\xA1`\n\x82Q\x92\x80\x84R\x83\x01Ri\x08\x08\x08\x08\x08\x14\x9AY\xDA\x1D`\xB2\x1B``\x83\x01R` \x82\x01R\xA1b\0'\xC1b\0)\xB5V[g)\xA2$\x1A\xF6,\0\0\x80\x82\x03b\0(\xB0WPPV[g7\x82\xDA\xCE\x9D\x90\0\0\x80\x82\x03b\0(\xB0WPPV[\x90\x80\x82\x03b\0(\xB0WPPV[sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0)\xE4W[Pa\x01\0a\xFF\0\x19`\x07T\x16\x17`\x07UV[`\0\x80\x91`@Q\x82` \x82\x01\x83\x81Re\x19\x98Z[\x19Y`\xD2\x1B`@\x84\x01R`\x01``\x84\x01R``\x83Rb\0*\x18\x83b\0$\x82V[b\0*C`$`@Q\x80\x93b\0'4` \x83\x01\x97cp\xCA\x10\xBB`\xE0\x1B\x89RQ\x80\x92\x85\x85\x01\x90b\0#\x10V[Q\x92Z\xF1Pb\0*Rb\0&1V[P8b\0)\xD2V\xFE`\xE0`@\x90\x80\x82R4b\0\x04\x99WPb\0\x13\x01\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xE6V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04JW\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04DW\x82b\0\0V\x91\x85\x01b\0\x05ZV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04DW\x83\x91b\0\0u\x91\x84\x01b\0\x05ZV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04?W\x84Q\x94\x86\x86\x11b\0\x04)W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06~V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xD8W[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03pW\x89\x92b\0\x03dW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03PW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06~V[\x82\x81\x11b\0\x02\xFBW[P\x87\x91\x83\x11`\x01\x14b\0\x02\x97W\x88\x92b\0\x02\x8BW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06~V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02kWPP`\x01\x14b\0\x02+W[Pb\0\x01m\x92P\x03\x82b\0\x04\xE6V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02\x17WP\x83\x90RQ\x90 `\xC0Ra\x0CE\x90\x81b\0\x06\xBC\x829`\x80Q\x81a\x06\x84\x01R`\xA0Q\x81a\nM\x01R`\xC0Q\x81a\nt\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02RWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x028V[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xE4WPP\x84\x11b\0\x02\xCAW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xBCV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xA9V[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03FW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x037WPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x03'V[\x92P\x81\x92b\0\x03\x18V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xC1WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xA7W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x99V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x7FV[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x04\x1FW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\x10WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x01V[\x92P\x81\x92b\0\x03\xF4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\nV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04)W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x06%W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04)W` \x90`@Q\x92b\0\x05\x95\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xE6V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xD0W`\0[\x81\x81\x10b\0\x05\xBCWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xA6V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xB0W[` \x83\x10\x14b\0\x06\x9AWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\x8EV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003`\xA0`@\x90\x80\x82R4b\0\x01[WP`\x01\x80U\x80Qa\x11D\x80\x82\x01\x91`\x01`\x01`@\x1B\x03\x91\x82\x84\x11\x82\x85\x10\x17b\0\x01EWb\0\x1E\xE5\x829\x80`\0\x93\x03\x90\x83\xF0\x80\x15b\0\x01;W`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81\x90R\x80;\x15b\0\0\xE9W\x90\x82\x80\x92`\x84\x86Q\x80\x96\x81\x93c&lE\xBB`\xE1\x1B\x83R\x89`\x04\x84\x01R\x81`D\x84\x01R```$\x84\x01R\x81`d\x84\x01RZ\xF1\x80\x15b\0\0\xDFWb\0\0\xB8W[\x83Qa\x1D<\x90\x81b\0\x01\xA9\x829`\x80Q\x81\x81\x81a\x0Bj\x01Ra\x10\x08\x01R\xF3[\x82\x11b\0\0\xCBWP\x81R8\x80\x80b\0\0\x99V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x84Q=\x84\x82>=\x90\xFD[\x83QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x83Q=\x84\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003`\x80`@\x90\x80\x82R4a\x01\x06WP\x80Q`\x1Fa\x07\xA18\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xF0W\x80\x84\x92``\x94\x87R\x839\x81\x01\x03\x12a\0\xA1Wa\0O\x81a\x01SV[\x90\x82a\0]` \x83\x01a\x01SV[\x91\x01Q\x91`\x01\x80`\xA0\x1B\x03\x19\x913\x83`\0T\x16\x17`\0U`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x83`\x01T\x16\x17`\x01U\x16\x90`\x02T\x16\x17`\x02U`\x03UQa\x064\x90\x81a\x01m\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x01gWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003`\xA0\x80`@R4a\0\xDCW`@Q`\x1Fa\x08e8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xC6W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0vWQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0qW`\x80R`@Qa\x07;\x90\x81a\x01*\x829`\x80Q\x81a\x01B\x01R\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80b.RK\x14a\x03\x9FW\x80ch\xBD>8\x14a\x03eW\x80cs\xCB-\x03\x14a\x02\x9AW\x80c\x8A\x04\xBD\xD5\x14a\x01\x87W\x80c\xAC\xAD)\x89\x14a\x01qW\x80c\xAF\xBA\x13\xC4\x14a\x01/Wc\xDC\x17\x83U\x14a\0\xCAWPa\0\x11V[\x904a\x01*W` \x80`\x03\x196\x01\x12a\x01%W\x91\x81Q\x92\x83\x91` \x83R``Q\x91\x82` \x85\x01R\x81[\x83\x81\x10a\x01\x10WPP\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x81\x01\x03\x01\x90\xF3[`\x80\x81\x01Q\x87\x82\x01\x87\x01R\x86\x94P\x81\x01a\0\xF3V[a\x04\xF3V[a\x04\xA3V[P4a\x01*W6`\x03\x19\x01\x12a\x01%WQ\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[P4a\x01*Wa\x01\x806a\x05\xECV[PPPP\x80\xF3[P4a\x01*Wa\x01\x966a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x03a\x02\x10WPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x02\xB5\xE3\xAF\x16\xB1\x88\0\0\x80gEc\x91\x82D\xF4\0\0\x92[Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[\x03\x90\xF3[`\t\x81\x03a\x02QWPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x05k\xC7^-c\x10\0\0h\x06\x81U\xA46v\xE0\0\0\x90g\x8A\xC7#\x04\x89\xE8\0\0\x92a\x01\xE1V[`\x08\x14a\x02dW[a\x02\x0C\x93\x94\x95a\x01\xE1V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90Ph\x06\x81U\xA46v\xE0\0\0a\x02YV[P4a\x01*Wa\x02\xA96a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x14a\x030W[`\x02\x14a\x03\x03W[a\x02\x0C\x93\x94\x95Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90P\x80a\x02\xD2V[g\r\xE0\xB6\xB3\xA7d\0\0\x95P`\x01\x94Pg7\x82\xDA\xCE\x9D\x90\0\0\x93Pg)\xA2$\x1A\xF6,\0\0\x92Pg\x1B\xC1mgN\xC8\0\0\x91Pa\x02\xCAV[P\x904a\x01*W`\xC0\x91a\x03x6a\x05\xECV[PPPP\x80\x82Q\x92\x81\x84R\x81` \x85\x01R\x83\x01R\x80``\x83\x01R\x80`\x80\x83\x01R`\xA0\x82\x01R\xF3[P\x904a\x04\xA3W\x80`\x03\x196\x01\x12a\x01%Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92`$\x805\x85\x81\x11a\x04\x9EW6`#\x82\x01\x12\x15a\x04\x99W\x80\x83\x015\x92\x86\x84\x11a\x04\x87W\x84Q\x96`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x88\x01\x90\x81\x11\x88\x82\x10\x17a\x04uW\x85R\x83\x87R6\x83\x85\x84\x01\x01\x11a\x04#WP\x91` \x95\x81\x87\x93\x87\x95\x01\x84\x83\x017\x01\x01RQ\x90\x81R\xF3[`\x84\x90`'\x84` \x88Q\x93bF\x1B\xCD`\xE5\x1B\x85R\x84\x01R\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R\xFD[cNH{q`\xE0\x1B\x87R`A\x82R\x83\x87\xFD[cNH{q`\xE0\x1B\x86R`A\x90R\x81\x85\xFD[a\x05\x93V[a\x05CV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90```\x03\x19\x83\x01\x12a\x01%W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\x07\0W\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x04\x9EW\x80`#\x83\x01\x12\x15a\x04\x99W\x81`\x04\x015\x93\x84\x11a\x06\xA7W`$\x84\x83\x01\x01\x11a\x06NW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xC5J`\xF7\x11\xAC\x0C\xBD\xFD;\x8F\x93\x12\xBC\xD0<\xA0^\x14(\x07\x91\xB2\xA1@\x9F\xF4\x9D\xE4'\xD7\xB2dsolcC\0\x08\x16\x003A0O\xAC\xD92=u\xB1\x1B\xCD\xD6\t\xCB8\xEF\xFF\xFD\xB0W\x10\xF7\xCA\xF0\xE9\xB1lm\x9Dp\x9FP\xA2dipfsX\"\x12 \xCC\xBB9\n\x11\xD4\xD23\xBB\x03\xDC\xE5\xC1\x18\x07\xAAl\x10\x84\n\xB0\x06\x8D\x02\x96\xEFRS\x14\t\xE0%dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static DFMMINIT_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10\x15b\0\0rW[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x805`\xE0\x1C\x80c\x08Nb8\x14b\0 \xB2W\x80c\n\x92T\xE4\x14b\0\x1C\xC5W\x80c\x0B\xBC\xC1\xA6\x14b\0\x1B\xABW\x80c\x1E\xD7\x83\x1C\x14b\0\x1B%W\x80c)\x8F\"\xBA\x14b\0\x19{W\x80c*\xDE8\x80\x14b\0\x16\xE6W\x80c>^<#\x14b\0\x16`W\x80c?r\x86\xF4\x14b\0\x15\xDAW\x80cQm*_\x14b\0\x14\x9EW\x80cXk\xE2\xF9\x14b\0\x12eW\x80cb\n&\x07\x14b\0\x12BW\x80cf\xD9\xA9\xA0\x14b\0\x10\xACW\x80c\x7F:E\xDA\x14b\0\x0F\xA4W\x80c\x85\"l\x81\x14b\0\x0EeW\x80c\x8F\tOk\x14b\0\t^W\x80c\x91j\x17\xC6\x14b\0\x06\xE2W\x80c\xB5P\x8A\xA9\x14b\0\x05\x8FW\x80c\xBAAO\xA6\x14b\0\x05gW\x80c\xC8@\xA3\x9E\x14b\0\x03\xC5W\x80c\xE0\xD7\xD0\xE9\x14b\0\x03\xA6W\x80c\xE2\x0C\x9Fq\x14b\0\x03\x0FW\x80c\xE2\x14\x85\xAD\x14b\0\x01\xC2Wc\xFAv&\xD4\x14b\0\x01\x93WPb\0\0\x0FV[4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W` `\xFF`\x07T\x16`@Q\x90\x15\x15\x81R\xF3[b\0\"yV[b\0\")V[P4b\0\x01\xBCW` 6`\x03\x19\x01\x12b\0\x01\xB6W`\x1CT`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x80;\x15b\0\x03\tW`\xE0`$\x91`@Q\x92\x83\x80\x92c\x06\x8B\xCD\x8D\x85\x1B\x82R`\x045`\x04\x83\x01RZ\xFA\x92\x83\x15b\0\x02\xFDW\x92b\0\x02+W[P`\xC0` \x92\x01Q\x16`@Q\x90\x81R\xF3[\x91P`\xE0\x82=`\xE0\x11b\0\x02\xF4W[\x81b\0\x02I`\xE0\x93\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6W`@Q`\xE0\x81\x01\x90\x80\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17b\0\x02\xDEWb\0\x02\xD2`\xC0` \x95\x81\x94`@Rb\0\x02\x87\x81b\0%\xB0V[\x84Rb\0\x02\x96\x87\x82\x01b\0%\xB0V[\x87\x85\x01Rb\0\x02\xA8`@\x82\x01b\0%\xB0V[`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01b\0%\xB0V[\x82\x82\x01R\x92Pb\0\x02\x1AV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[=\x91Pb\0\x02:V[`@Q\x90=\x90\x82>=\x90\xFD[b\0$\xF4V[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x13\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90\x92\x91[\x82\x82\x10b\0\x03\x85Wb\0\x03\x81\x85b\0\x03t\x81\x89\x03\x82b\0$\xD1V[`@Q\x91\x82\x91\x82b\0\"\xC9V[\x03\x90\xF3[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x03YV[P4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W` `!T`@Q\x90\x81R\xF3[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x01` \x82\x01R` \x81Rb\0\x03\xF1\x81b\0$\xB4V[` T`@Q\x91`\x01`\x01`\xA0\x1B\x03\x91\x82\x16b\0\x04\x0E\x84b\0$\x82V[\x83Ra\xBE\xEF` \x84\x01Ra\xDE\xAD`@\x84\x01R``\x83\x01R\x80`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x04X`\x80\x91\x85\x94`@Q\x95\x86\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x91\x82\x15b\0\x05\\W\x83\x92b\0\x05!W[P`\x1CT\x16\x90\x81;\x15b\0\x03\tW``\x90`$`@Q\x80\x94\x81\x93c3\x85N\xFD`\xE2\x1B\x83R`\x04\x83\x01RZ\xFA\x90\x81\x15b\0\x05\x16Wb\0\x04\xCD\x91\x83\x84\x90\x85\x92b\0\x04\xD0W[b\0\x04\xC7\x92\x93Pb\0\x04\xC1\x90b\0(\x9BV[b\0)~V[b\0)\x93V[\x80\xF3[PPPb\0\x04\xC7b\0\x05\x01b\0\x04\xC1\x92``=``\x11b\0\x05\x0EW[b\0\x04\xF8\x81\x83b\0$\xD1V[\x81\x01\x90b\0%\xE3V[\x91\x93P\x90\x91P\x82b\0\x04\xAFV[P=b\0\x04\xECV[`@Q=\x84\x82>=\x90\xFD[b\0\x05I\x91\x92P`\x80=`\x80\x11b\0\x05TW[b\0\x05@\x81\x83b\0$\xD1V[\x81\x01\x90b\0%GV[PPP\x908b\0\x04lV[P=b\0\x054V[`@Q=\x85\x82>=\x90\xFD[P4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W` b\0\x05\x85b\0&\x8FV[`@Q\x90\x15\x15\x81R\xF3[P4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W`\x17Tb\0\x05\xAF\x81b\0%\xCAV[b\0\x05\xBE`@Q\x91\x82b\0$\xD1V[\x81\x81R` \x91\x82\x82\x01`\x17`\0R\x7F\xC6$\xB6l\xC0\x13\x8B\x8F\xAB\xC2\t$\x7Fr\xD7X\xE1\xCF3CumT;\xAD\xBF$!+\xED\x8C\x15\x90`\0\x90[\x83\x82\x10b\0\x06\nW`@Q\x80b\0\x03\x81\x87\x82b\0$\x1AV[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x06\xD7W[\x8B\x83\x10\x81\x14b\0\x06\xC3W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x06\xA5WP`\x01\x14b\0\x06hW[Pb\0\x06Y\x81`\x01\x96\x03\x82b\0$\xD1V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x05\xF2V[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x06\x8DWP\x81\x01\x83\x01\x94Pb\0\x06Yb\0\x06HV[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x06tV[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x06Yb\0\x06HV[cNH{q`\xE0\x1B\x87R`\"`\x04R`$\x87\xFD[\x91`\x7F\x16\x91b\0\x06%V[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`\x1ATb\0\x07\x03\x81b\0%\xCAV[\x90b\0\x07\x13`@Q\x92\x83b\0$\xD1V[\x80\x82R`\x1A\x83R\x82\x7F\x05|8J}\x1CT\xF3\xA1\xB2\xE5\xE6{&\x17\xB8\"O\xDF\xD1\xEAr4\xEE\xA5s\xA6\xFFf_\xF6>` \x84\x01[\x83\x83\x10b\0\x07YW`@Q\x80b\0\x03\x81\x87\x82b\0#\\V[`@Qb\0\x07g\x81b\0$\xB4V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\x08\xEEW\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\x07\xFD\x94T\x91\x81\x81\x10b\0\x08\xD1W[\x81\x81\x10b\0\x08\xB4W[\x81\x81\x10b\0\x08\x97W[\x81\x81\x10b\0\x08zW[\x81\x81\x10b\0\x08]W[\x81\x81\x10b\0\x08@W[\x81\x81\x10b\0\x08%W[\x10b\0\x08\x10W[P\x03\x82b\0$\xD1V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x07AV[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x86\x018b\0\x07\xF4V[\x82\x8A\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xEDV[`@\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xE4V[``\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xDBV[`\x80\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xD2V[`\xA0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xC9V[`\xC0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xC0V[`\xE0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x07\xB7V[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\x07\x8FV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q` `\x01\x81\x83\x01R\x80\x82Rb\0\t\x8A\x82b\0$\xB4V[\x80T`\x1ET`\x1FT`@Q\x94`\x01`\x01`\xA0\x1B\x03\x93\x92\x84\x16\x92\x91\x84\x16\x91\x84\x16b\0\t\xB4\x87b\0$\x82V[\x86R\x82\x85\x87\x01R\x81`@\x87\x01R``\x86\x01R\x82`\x1CT\x16\x92\x82;\x15b\0\x03\tW`@Q\x95cp\xA0\x821`\xE0\x1B\x93\x84\x88R\x85`\x04\x89\x01R`$\x95\x87\x89\x88\x81\x85Z\xFA\x98\x89\x15b\0\x0C\xA4W\x8A\x99b\0\x0E0W[P\x84;\x15b\0\x03\tW`@Q\x90\x86\x82R\x80`\x04\x83\x01R\x88\x82\x89\x81\x89Z\xFA\x91\x82\x15b\0\x0C\xEAW\x8B\x92b\0\r\xFBW[P\x82;\x15b\0\x03\tW\x88\x88\x93`@Q\x94\x85\x80\x92\x8B\x82R0`\x04\x83\x01RZ\xFA\x92\x83\x15b\0\x0C\xEAW\x8B\x93b\0\r\xC6W[P\x85;\x15b\0\x03\tW\x88\x88\x96`@Q\x99\x8A\x80\x92\x8B\x82R0`\x04\x83\x01RZ\xFA\x97\x88\x15b\0\x0C\xEAW\x8B\x98b\0\r\x91W[P\x80;\x15b\0\x03\tWb\0\n\xBC`\x80\x91\x8C\x95`@Q\x96\x87\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x92\x83\x15b\0\x0C\xA4W\x8A\x93b\0\rhW[P\x83`\x1CT\x16\x80;\x15b\0\x03\tW`@Q\x93c3\x85N\xFD`\xE2\x1B\x85R`\x04\x85\x01R``\x84\x87\x81\x84Z\xFA\x99\x8A\x15b\0\x0C\xEAW\x8B\x94\x8C\x9Bb\0\r;W[P\x85`\x1ET\x16\x91\x82;\x15b\0\x03\tW\x8A\x90\x88`@Q\x80\x95\x81\x93\x8D\x83R`\x04\x83\x01RZ\xFA\x90\x81\x15b\0\r0W\x85\x92\x8D\x92b\0\x0C\xF5W[Pb\0\x0BX\x92b\0\x0BQ\x91b\0%\xFFV[\x90b\0)\xA8V[\x83`\x1FT\x16\x90\x84`\x1CT\x16\x82;\x15b\0\x03\tW\x89\x90\x87`@Q\x80\x95\x81\x93\x8C\x83R`\x04\x83\x01RZ\xFA\x90\x81\x15b\0\x0C\xEAW\x8A\x92\x8C\x92b\0\x0C\xAFW[Pb\0\x0B\xA2\x92b\0\x0BQ\x91b\0%\xFFV[\x82`\x1ET\x16\x90\x81;\x15b\0\x03\tW\x87\x85\x92`@Q\x93\x84\x80\x92\x8A\x82R0`\x04\x83\x01RZ\xFA\x91\x82\x15b\0\x0C\xA4W\x8A\x92b\0\x0ClW[Pb\0\x0B\xE6\x92b\0\x0BQ\x91b\0&#V[`\x1FT\x16\x91\x82;\x15b\0\x03\tW\x84\x91`@Q\x80\x94\x81\x93\x82R0`\x04\x83\x01RZ\xFA\x92\x83\x15b\0\x0CaW\x85\x93b\0\x0C(W[PPb\0\x04\xCD\x92b\0\x0BQ\x91b\0&#V[\x90\x80\x92\x93P\x81=\x83\x11b\0\x0CYW[b\0\x0CC\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x90\x82b\0\x0BQb\0\x0C\x16V[P=b\0\x0C7V[`@Q=\x87\x82>=\x90\xFD[\x90\x91P\x87\x81\x81=\x83\x11b\0\x0C\x9CW[b\0\x0C\x87\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x90b\0\x0B\xE6b\0\x0B\xD5V[P=b\0\x0C{V[`@Q=\x8C\x82>=\x90\xFD[\x92P\x90P\x88\x82\x81=\x81\x11b\0\x0C\xE2W[b\0\x0C\xCB\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6W\x90Q\x89\x91b\0\x0B\xA2b\0\x0B\x91V[P=b\0\x0C\xBFV[`@Q=\x8D\x82>=\x90\xFD[\x92P\x90P\x89\x82\x81=\x81\x11b\0\r(W[b\0\r\x11\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6W\x90Q\x84\x91b\0\x0BXb\0\x0B@V[P=b\0\r\x05V[`@Q=\x8E\x82>=\x90\xFD[\x90\x9APb\0\r\\\x91\x94P``=``\x11b\0\x05\x0EWb\0\x04\xF8\x81\x83b\0$\xD1V[P\x93\x90\x93\x998b\0\x0B\x0BV[b\0\r\x86\x91\x93P`\x80=`\x80\x11b\0\x05TWb\0\x05@\x81\x83b\0$\xD1V[PPP\x918b\0\n\xD0V[\x90\x97P\x88\x81\x81=\x83\x11b\0\r\xBEW[b\0\r\xAC\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x968b\0\n\x8DV[P=b\0\r\xA0V[\x90\x92P\x88\x81\x81=\x83\x11b\0\r\xF3W[b\0\r\xE1\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x918b\0\n_V[P=b\0\r\xD5V[\x90\x91P\x88\x81\x81=\x83\x11b\0\x0E(W[b\0\x0E\x16\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x908b\0\n1V[P=b\0\x0E\nV[\x90\x98P\x87\x81\x81=\x83\x11b\0\x0E]W[b\0\x0EK\x81\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6WQ\x978b\0\n\x04V[P=b\0\x0E?V[P4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W`\x18Tb\0\x0E\x85\x81b\0%\xCAV[b\0\x0E\x94`@Q\x91\x82b\0$\xD1V[\x81\x81R` \x91\x82\x82\x01`\x18`\0R\x7F\xB1=-v\xD1\xF4\xB7\xBE\x83H\x82\xE4\x10\xB3\xE3\xA8\xAF\xAFi\xF86\0\xAE$\xDB5C\x91\xD27\x8D.\x90`\0\x90[\x83\x82\x10b\0\x0E\xE0W`@Q\x80b\0\x03\x81\x87\x82b\0$\x1AV[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x0F\x99W[\x8B\x83\x10\x81\x14b\0\x06\xC3W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x0F{WP`\x01\x14b\0\x0F>W[Pb\0\x0F/\x81`\x01\x96\x03\x82b\0$\xD1V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x0E\xC8V[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x0FcWP\x81\x01\x83\x01\x94Pb\0\x0F/b\0\x0F\x1EV[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x0FJV[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x0F/b\0\x0F\x1EV[\x91`\x7F\x16\x91b\0\x0E\xFBV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x01` \x82\x01R` \x81Rb\0\x0F\xD0\x81b\0$\xB4V[` T`@Q\x91`\x01`\x01`\xA0\x1B\x03\x91\x82\x16b\0\x0F\xED\x84b\0$\x82V[\x83Ra\xBE\xEF` \x84\x01Ra\xDE\xAD`@\x84\x01R``\x83\x01R`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x106`\x80\x91\x84\x93`@Q\x94\x85\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x90\x81\x15b\0\x05\x16Wb\0\x04\xCD\x91\x83\x84\x85\x91\x86\x93b\0\x10pW[b\0\x04\xC7\x93\x94P\x90b\0\x10jb\0\x04\xC1\x92b\0'\xC3V[b\0(\x9BV[PPPPb\0\x04\xC7b\0\x04\xC1b\0\x10\x9Cb\0\x10j\x93`\x80=`\x80\x11b\0\x05TWb\0\x05@\x81\x83b\0$\xD1V[\x92\x95P\x91\x93P\x90\x91P\x83b\0\x10SV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`\x19Tb\0\x10\xCD\x81b\0%\xCAV[\x90b\0\x10\xDD`@Q\x92\x83b\0$\xD1V[\x80\x82R`\x19\x83R\x82\x7F\x94I\x98'>G{IQD\xFB\x87\x94\xC9\x14\x19\x7F<\xCBF\xBE)\0\xF4i\x8F\xD0\xEFt<\x96\x95` \x84\x01[\x83\x83\x10b\0\x11#W`@Q\x80b\0\x03\x81\x87\x82b\0#\\V[`@Qb\0\x111\x81b\0$\xB4V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\x11\xD2W\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\x11\xBF\x94T\x91\x81\x81\x10b\0\x08\xD1W\x81\x81\x10b\0\x08\xB4W\x81\x81\x10b\0\x08\x97W\x81\x81\x10b\0\x08zW\x81\x81\x10b\0\x08]W\x81\x81\x10b\0\x08@W\x81\x81\x10b\0\x08%W\x10b\0\x08\x10WP\x03\x82b\0$\xD1V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x11\x0BV[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\x11YV[P4b\0\x01\xBCW6`\x03\x19\x01\x12b\0\x01\xB6W` `@Qf\n\xA8{\xEES\x80\0\x81R\xF3[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q` \x90`\x01\x82\x82\x01R\x81\x81Rb\0\x12\x92\x81b\0$\xB4V[\x81T`@Q`\x01`\x01`\xA0\x1B\x03\x93\x90\x92\x90\x91\x84\x16b\0\x12\xB1\x84b\0$\x82V[\x83Ra\xBE\xEF\x82\x84\x01Ra\xDE\xAD`@\x84\x01R``\x83\x01R\x82`\x1CT\x16\x80;\x15b\0\x03\tW`@Q\x93\x84c\x05\x15|\x7F`\xE2\x1B\x92\x83\x82R`\x80\x96\x87\x91\x81\x8A\x81b\0\x12\xFC\x8B`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x80\x15b\0\x14\x93Wb\0\x13\x1B\x91\x88\x91b\0\x14nW[Pb\0'\xC3V[`\x1CT\x16\x92\x83;\x15b\0\x03\tWb\0\x13E\x93\x85\x92\x87`@Q\x80\x97\x81\x95\x82\x94\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x91\x82\x15b\0\x14cW\x84\x92b\0\x14=\x90\xFD[b\0\x14\x89\x91P\x87=\x89\x11b\0\x05TWb\0\x05@\x81\x83b\0$\xD1V[PPP8b\0\x13\x14V[`@Q=\x89\x82>=\x90\xFD[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W` T`@Q\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x16b\0\x14\xCE\x83b\0$\x82V[\x82Ra\xBE\xEF\x80` \x84\x01R`@\x83\x01R`@Q` \x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02\xDEW`@R\x83\x81R``\x83\x01Rsq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;\x15b\0\x03\tW`@Qc\x06\x18\xF5\x87`\xE5\x1B\x81Rc3\x91\n\xEF`\xE1\x1B`\x04\x82\x01R\x84\x91\x82\x90\x82\x90`$\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x05\x16Wb\0\x15\xC2W[PP`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x15\x8B`\x80\x91\x84\x93`@Q\x94\x85\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x80\x15b\0\x05\x16Wb\0\x15\x9FWP\x80\xF3[b\0\x15\xBB\x90`\x80=`\x80\x11b\0\x05TWb\0\x05@\x81\x83b\0$\xD1V[PPPP\x80\xF3[b\0\x15\xCD\x90b\0$\x9FV[b\0\x01\xB6W\x828b\0\x15WV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x15\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7FU\xF4H\xFD\xEA\x98\xC4\xD2\x9E\xB3@u~\xF0\xA6l\xD0=\xBB\x958\x90\x8Aj\x81\xD9`&\xB7\x1E\xC4u\x92\x91[\x82\x82\x10b\0\x16?Wb\0\x03\x81\x85b\0\x03t\x81\x89\x03\x82b\0$\xD1V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x16$V[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x16\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xD83\x14}}\xC3U\xBAE\x9F\xC7\x88\xF6i\xE5\x8C\xFA\xF9\xDC%\xDD\xCD\x07\x02\xE8}i\xC7\xB5\x12B\x89\x92\x91[\x82\x82\x10b\0\x16\xC5Wb\0\x03\x81\x85b\0\x03t\x81\x89\x03\x82b\0$\xD1V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x16\xAAV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`\x1BT\x90b\0\x17\x08\x82b\0%\xCAV[b\0\x17\x17`@Q\x91\x82b\0$\xD1V[\x82\x81R` \x81\x01\x80\x93`\x1B\x84R\x7F:\xD8\xAAO\x87TC#\xA9\xD1\xE5\xDD\x90/@\xC3VRzyUhq\x13\xDB_\x9A\x85\xADW\x9D\xC1\x84\x92[\x82\x84\x10b\0\x18!W\x85\x85\x88`@Q\x91` \x83\x01\x90` \x84RQ\x80\x91R`@\x83\x01`\x05\x90`@\x83`\x05\x1B\x86\x01\x01\x93\x95\x80\x92[\x84\x84\x10b\0\x17\x87W\x86\x86\x03\x87\xF3[\x90\x91\x92\x93\x94`?\x19\x87\x82\x03\x01\x84R\x87Q\x90` `@\x82\x01\x92`\x01\x80`\xA0\x1B\x03\x81Q\x16\x83R\x01Q\x91`@` \x83\x01R\x82Q\x80\x91R``\x90` \x82\x84\x01\x92\x82\x87\x1B\x85\x01\x01\x94\x01\x92\x86[\x82\x81\x10b\0\x17\xF3WPPPPP` \x80`\x01\x92\x99\x01\x94\x01\x94\x01\x92\x96\x94\x93\x91\x90b\0\x17yV[\x90\x91\x92\x93\x94` \x80b\0\x18\x13`\x01\x93`_\x19\x87\x82\x03\x01\x89R\x89Qb\0#5V[\x97\x01\x95\x01\x93\x92\x91\x01b\0\x17\xCEV[`@Qb\0\x18/\x81b\0$\xB4V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`\x01\x83\x01\x80T\x90b\0\x18N\x82b\0%\xCAV[\x91b\0\x18^`@Q\x93\x84b\0$\xD1V[\x80\x83R` \x83\x01\x91`\0R` `\0 `\0\x92[\x82\x84\x10b\0\x18\x9AWPPPP`\x01\x92\x82` \x92\x83`\x02\x95\x01R\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x17HV[`@Q`\0\x83T\x80`\x01\x1C\x90`\x01\x81\x16\x15b\0\x19pW[` \x82\x10`\x01\x82\x16\x14b\0\x19\\W\x81\x84R`\x01\x81\x16\x90\x81\x15b\0\x198WP`\x01\x14b\0\x18\xFDW[P`\x01\x92\x82b\0\x18\xEE\x85\x94` \x94\x03\x82b\0$\xD1V[\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x18rV[`\0\x85\x81R` \x81 \x90\x92P[\x81\x83\x10b\0\x19!WPP\x81\x01` \x01`\x01b\0\x18\xD8V[`\x01\x81` \x92T\x83\x86\x88\x01\x01R\x01\x92\x01\x91b\0\x19\nV[`\xFF\x19\x16` \x85\x81\x01\x91\x90\x91R\x91\x15\x15`\x05\x1B\x84\x01\x90\x91\x01\x91P`\x01\x90Pb\0\x18\xD8V[cNH{q`\xE0\x1B\x83R`\"`\x04R`$\x83\xFD[\x90`\x7F\x16\x90b\0\x18\xB1V[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`\x01\x80`\xA0\x1B\x03\x80` T\x16\x90\x80`\x1ET\x16\x81`\x1FT\x16`@Q\x91`\x02` \x84\x01R` \x83Rb\0\x19\xBF\x83b\0$\xB4V[`@Q\x94b\0\x19\xCE\x86b\0$\x82V[\x85R` \x85\x01R`@\x84\x01R``\x83\x01R\x80`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x1A\x12`\x80\x91\x85\x94`@Q\x95\x86\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[\x03\x92Z\xF1\x91\x82\x15b\0\x05\\W\x83\x92b\0\x1A\xFCW[P\x81`!U\x80`\x1CT\x16\x91\x82;\x15b\0\x03\tW`\xE0\x90`$`@Q\x80\x95\x81\x93c\x15\x89_G`\xE3\x1B\x83R`\x04\x83\x01RZ\xFA\x91\x82\x15b\0\x05\\W\x83\x92b\0\x1A\x84W[P\x90b\0\x1A{b\0\x04\xCD\x92\x82\x16\x15\x15b\0'hV[;\x15\x15b\0'hV[\x91P`\xE0\x82=`\xE0\x11b\0\x1A\xF3W[\x81b\0\x1A\xA2`\xE0\x93\x83b\0$\xD1V[\x81\x01\x03\x12b\0\x01\xB6Wb\0\x1A{b\0\x1A\xEB`\xC0\x84b\0\x1A\xC5b\0\x04\xCD\x96b\0%\xB0V[Pb\0\x1A\xD4` \x82\x01b\0%\xB0V[Pb\0\x1A\xE3`@\x82\x01b\0%\xB0V[P\x01b\0%\xB0V[\x92Pb\0\x1AfV[=\x91Pb\0\x1A\x93V[b\0\x1B\x1A\x91\x92P`\x80=`\x80\x11b\0\x05TWb\0\x05@\x81\x83b\0$\xD1V[PPP\x908b\0\x1A&V[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q`\x14\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xCEm{R\x82\xBD\x9A6a\xAE\x06\x1F\xEE\xD1\xDB\xDANR\xAB\x07;\x1F\x92\x85\xBEn\x15]\x9C8\xD4\xEC\x92\x91[\x82\x82\x10b\0\x1B\x8AWb\0\x03\x81\x85b\0\x03t\x81\x89\x03\x82b\0$\xD1V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x1BoV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W` \x80T`@Q\x80\x83\x01\x84\x90R\x82\x81R`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x92\x90b\0\x1B\xE6\x81b\0$\xB4V[`@Q\x93b\0\x1B\xF5\x85b\0$\x82V[\x84Ra\xBE\xEF\x82\x85\x01Ra\xDE\xAD`@\x85\x01R``\x84\x01R`@Q\x90cw`m)`\xE1\x1B\x81\x83\x01R\x84`$\x83\x01R\x84`D\x83\x01R`D\x82Rb\0\x1C6\x82b\0$\x82V[sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x90\x81;\x15b\0\x03\tW\x85\x92b\0\x1C\x81\x92\x84\x92\x83`@Q\x80\x96\x81\x95\x82\x94c\xF2\x8D\xCE\xB3`\xE0\x1B\x84R`\x04\x84\x01R`$\x83\x01\x90b\0#5V[\x03\x92Z\xF1\x80\x15b\0\x05\x16Wb\0\x15\xC2WPP`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x15\x8B`\x80\x91\x84\x93`@Q\x94\x85\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[P4b\0\x01\xBCW\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Qa\x13\x01\x80\x82\x01\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x84\x10\x81\x85\x11\x17b\0 \x9EWb\0*[\x91\x83\x83\x829``\x85R`\x06``\x86\x01Re\x0E\x8D\xEDl\xAD\xCB`\xD3\x1B`\x80\x86\x01R`\xE0\x81` \x96`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`\x0B`\xFB\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x92\x83\x15b\0\x0CaW`\x01\x80`\xA0\x1B\x03\x92\x83k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x95\x16\x85`\x1ET\x16\x17`\x1EU`@Q\x91\x80\x83\x01\x91\x83\x83\x10\x85\x84\x11\x17b\0 \x8AW\x91\x83\x91`\xE0\x93\x839``\x81R`\x06``\x82\x01RetokenY`\xD0\x1B`\x80\x82\x01R`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`Y`\xF8\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x80\x15b\0\x0CaW\x82\x16\x83`\x1FT\x16\x17`\x1FU\x81`\x1ET\x16\x90\x81;\x15b\0\x03\tW`@Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01R\x87h\x05k\xC7^-c\x10\0\0\x92\x81\x81`D\x81\x83`$\x9A\x89\x8C\x84\x01RZ\xF1\x80\x15b\0\x05\x16Wb\0 rW[PP\x84`\x1FT\x16\x90\x81;\x15b\0\x03\tW\x88\x92`D\x84\x92\x83`@Q\x95\x86\x94\x85\x93\x84R0`\x04\x85\x01R\x8A\x84\x01RZ\xF1\x80\x15b\0\x05\x16Wb\0 ZW[PP\x82`\x1ET\x16\x83`\x1FT\x16\x90`@Q\x91a\x07\xA1\x91\x82\x84\x01\x92\x84\x84\x10\x86\x85\x11\x17b\0 GW\x91``\x93\x91\x85\x93b\0m\x85\x859\x82R\x89\x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R\x03\x01\x90\x87\xF0\x80\x15b\0 )W\x83\x16\x84`\x1DT\x16\x17`\x1DU`@Qa0)\x80\x82\x01\x90\x82\x82\x10\x84\x83\x11\x17b\0 4W\x90\x82\x91b\0=\\\x839\x03\x90\x87\xF0\x80\x15b\0 )W\x83\x16`\x1CT\x81\x86\x82\x16\x17`\x1CU\x84`\x1ET\x16\x91\x82;\x15b\0\x03\tW`@Q\x90\x89c\t^\xA7\xB3`\xE0\x1B\x93\x84\x84R\x16\x17`\x04\x82\x01R\x87\x81`D\x81\x8C`\0\x19\x97\x88\x8B\x84\x01RZ\xF1\x80\x15b\0 \x1EWb\0\x1F\xFCW[P\x84`\x1FT\x16\x85`\x1CT\x16\x90\x80;\x15b\0\x03\tW\x88\x92\x8A`D\x92`@Q\x96\x87\x95\x86\x94\x85R`\x04\x85\x01R\x89\x84\x01RZ\xF1\x80\x15b\0\x14\x93Wb\0\x1F\xC8W[P\x82`\x1CT\x16`@Q\x92a\x08e\x90\x81\x85\x01\x93\x85\x85\x10\x90\x85\x11\x17b\0\x1F\xB6WP\x91\x83\x91\x87\x93b\0u&\x849\x81R\x03\x01\x90\x85\xF0\x80\x15b\0\x14cW\x16\x90\x82T\x16\x17\x90U\x80\xF3[cNH{q`\xE0\x1B\x89R`A`\x04R\x88\xFD[b\0\x1F\xEC\x90\x86=\x88\x11b\0\x1F\xF4W[b\0\x1F\xE3\x81\x83b\0$\xD1V[\x81\x01\x90b\0&uV[P8b\0\x1FsV[P=b\0\x1F\xD7V[b\0 \x16\x90\x88=\x8A\x11b\0\x1F\xF4Wb\0\x1F\xE3\x81\x83b\0$\xD1V[P8b\0\x1F7V[`@Q=\x8B\x82>=\x90\xFD[`@Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x89R`A`\x04R\x84\x89\xFD[cNH{q`\xE0\x1B\x8BR`A`\x04R\x86\x8B\xFD[b\0 e\x90b\0$\x9FV[b\0\x01\xB6W\x858b\0\x1E_V[b\0 }\x90b\0$\x9FV[b\0\x01\xB6W\x878b\0\x1E%V[cNH{q`\xE0\x1B\x89R`A`\x04R`$\x89\xFD[cNH{q`\xE0\x1B\x85R`A`\x04R`$\x85\xFD[P4b\0\")W\x80`\x03\x196\x01\x12b\0\x01\xB6W`@Q` \x90`\x01\x82\x82\x01R\x81\x81Rb\0 \xDF\x81b\0$\xB4V[\x81T`@Q\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x16b\0 \xFC\x85b\0$\x82V[\x84Ra\xBE\xEF\x90\x81\x81\x86\x01Ra\xDE\xAD\x92\x83`@\x87\x01R``\x86\x01R\x83`\x1CT\x16sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x90\x81;\x15b\0\x03\tW\x87\x91`\xA4\x83\x92`@Q\x94\x85\x93\x84\x92c\x81\xBA\xD6\xF3`\xE0\x1B\x84R`\x01`\x04\x85\x01R`\x01`$\x85\x01R`\x01`D\x85\x01R`\x01`d\x85\x01R`\x84\x84\x01RZ\xF1\x80\x15b\0\x14\x93Wb\0\"\x13W[P\x85\x84\x82T\x16\x91`@Q\x92\x83R\x82\x01Rg\x1B\xC1mgN\xC8\0\0`@\x82\x01Rg)\xA2$\x1A\xF6,\0\0``\x82\x01Rg7\x82\xDA\xCE\x9D\x90\0\0`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA00\x92\xA4`\x1CT\x16\x80;\x15b\0\x03\tWb\0\x15\x8B`\x80\x91\x84\x93`@Q\x94\x85\x80\x94\x81\x93c\x05\x15|\x7F`\xE2\x1B\x83R`\x04\x83\x01b\0%jV[b\0\"!\x90\x96\x91\x96b\0$\x9FV[\x948b\0!\x81V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[` \x90` `@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10b\0\"\xF2WPPPP\x90V[\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01b\0\"\xE3V[`\0[\x83\x81\x10b\0#$WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01b\0#\x13V[\x90` \x91b\0#P\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0#\x10V[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01\x82`@\x85`\x05\x1B\x84\x01\x01\x96\x01\x94`\0\x80\x93[\x86\x85\x10b\0#\x96WPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x80\x96\x97\x98`?\x19\x83\x82\x03\x01\x86R\x89Q\x82``\x81\x88\x85\x01\x93`\x01\x80`\xA0\x1B\x03\x81Q\x16\x86R\x01Q\x93\x88\x83\x82\x01R\x84Q\x80\x94R\x01\x92\x01\x90\x85\x90[\x80\x82\x10b\0#\xF5WPPP\x90\x80`\x01\x92\x9A\x01\x95\x01\x95\x01\x93\x96\x95\x94\x92\x91\x90b\0#\x83V[\x82Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x8A\x94\x93\x84\x01\x93\x90\x92\x01\x91`\x01\x91\x90\x91\x01\x90b\0#\xD2V[` \x80\x82\x01\x90` \x83R\x83Q\x80\x92R`@\x83\x01\x92` `@\x84`\x05\x1B\x83\x01\x01\x95\x01\x93`\0\x91[\x84\x83\x10b\0$QWPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x84\x80b\0$q`\x01\x93`?\x19\x86\x82\x03\x01\x87R\x8AQb\0#5V[\x98\x01\x93\x01\x93\x01\x91\x94\x93\x92\x90b\0$@V[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02\xDEW`@RV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02\xDEW`@RV[`@\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02\xDEW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02\xDEW`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\x80\x91\x03\x12b\0\x01\xB6W\x81Q\x91` \x81\x01Q\x91```@\x83\x01Q\x92\x01Q\x90V[`\xA0``b\0%\xAD\x93` \x84R`\x01\x80\x84\x1B\x03\x80\x82Q\x16` \x86\x01R\x80` \x83\x01Q\x16`@\x86\x01R`@\x82\x01Q\x16\x82\x85\x01R\x01Q\x91`\x80\x80\x82\x01R\x01\x90b\0#5V[\x90V[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0%\xC5WV[`\0\x80\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02\xDEW`\x05\x1B` \x01\x90V[\x90\x81``\x91\x03\x12b\0\x01\xB6W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[\x91\x90\x82\x01\x80\x92\x11b\0&\rWV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x91\x90\x82\x03\x91\x82\x11b\0&\rWV[=\x15b\0&pW=\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11b\0\x02\xDEW`@Q\x91b\0&d`\x1F\x82\x01`\x1F\x19\x16` \x01\x84b\0$\xD1V[\x82R=`\0` \x84\x01>V[``\x90V[\x90\x81` \x91\x03\x12b\0\x01\xB6WQ\x80\x15\x15\x81\x03b\0%\xC5W\x90V[`\x07T`\x08\x1C`\xFF\x16\x15b\0&\xAAW`\xFF`\x07T`\x08\x1C\x16\x90V[`\0sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0&\xCCWP\x90V[`@\x80Q` \x81\x01\x83\x81Re\x19\x98Z[\x19Y`\xD2\x1B\x82\x84\x01R\x91\x81R``\x81\x01\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x81\x83\x10\x17b\0 \x9EW\x81b\0'E`$\x87\x96\x95\x94\x93\x87\x94`@R`\x80\x81\x01\x95c\x06g\xF9\xD7`\xE4\x1B\x87Rb\0'4\x82Q\x80\x92`\x84\x85\x01\x90b\0#\x10V[\x81\x01\x03`\x04\x81\x01\x84R\x01\x82b\0$\xD1V[Q\x92Z\xF1Pb\0%\xADb\0'Xb\0&1V[` \x80\x82Q\x83\x01\x01\x91\x01b\0&uV[\x15b\0'pWV[`\0\x80Q` b\0}\x8B\x839\x81Q\x91R```@Q` \x81R`\x17` \x82\x01R\x7FError: Assertion Failed\0\0\0\0\0\0\0\0\0`@\x82\x01R\xA1b\0'\xC1b\0)\xB5V[V[\x80b\0'\xCCWPV[`\x80\x80\x91`@\x90`\0\x80Q` b\0}\x8B\x839\x81Q\x91R\x83\x83Q` \x81R`\"` \x82\x01R\x7FError: a == b not satisfied [uin\x85\x82\x01Rat]`\xF0\x1B``\x82\x01R\xA1\x81Q\x90\x82\x82R`\n\x83\x83\x01Ri\x08\x08\x08\x08\x08\x08\x13\x19Y\x9D`\xB2\x1B``\x83\x01R` \x82\x01R\x7F\xB2\xDE/\xBE\x80\x1A\r\xF6\xC0\xCB\xDD\xFDD\x8B\xA3\xC4\x1DH\xA0@\xCA5\xC5l\x81\x96\xEF\x0F\xCA\xE7!\xA8\x93\x84\x91\xA1`\n\x81Q\x91\x80\x83R\x82\x01Ri\x08\x08\x08\x08\x08\x14\x9AY\xDA\x1D`\xB2\x1B``\x82\x01R`\0` \x82\x01R\xA1b\0'\xC1b\0)\xB5V[g\x1B\xC1mgN\xC8\0\0\x80\x82\x03b\0(\xB0WPPV[`\x80\x91\x82\x91`@\x91`\0\x80Q` b\0}\x8B\x839\x81Q\x91R\x84\x84Q` \x81R`\"` \x82\x01R\x7FError: a == b not satisfied [uin\x86\x82\x01Rat]`\xF0\x1B``\x82\x01R\xA1\x82Q\x90\x83\x82R`\n\x84\x83\x01Ri\x08\x08\x08\x08\x08\x08\x13\x19Y\x9D`\xB2\x1B``\x83\x01R` \x82\x01R\x7F\xB2\xDE/\xBE\x80\x1A\r\xF6\xC0\xCB\xDD\xFDD\x8B\xA3\xC4\x1DH\xA0@\xCA5\xC5l\x81\x96\xEF\x0F\xCA\xE7!\xA8\x94\x85\x91\xA1`\n\x82Q\x92\x80\x84R\x83\x01Ri\x08\x08\x08\x08\x08\x14\x9AY\xDA\x1D`\xB2\x1B``\x83\x01R` \x82\x01R\xA1b\0'\xC1b\0)\xB5V[g)\xA2$\x1A\xF6,\0\0\x80\x82\x03b\0(\xB0WPPV[g7\x82\xDA\xCE\x9D\x90\0\0\x80\x82\x03b\0(\xB0WPPV[\x90\x80\x82\x03b\0(\xB0WPPV[sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0)\xE4W[Pa\x01\0a\xFF\0\x19`\x07T\x16\x17`\x07UV[`\0\x80\x91`@Q\x82` \x82\x01\x83\x81Re\x19\x98Z[\x19Y`\xD2\x1B`@\x84\x01R`\x01``\x84\x01R``\x83Rb\0*\x18\x83b\0$\x82V[b\0*C`$`@Q\x80\x93b\0'4` \x83\x01\x97cp\xCA\x10\xBB`\xE0\x1B\x89RQ\x80\x92\x85\x85\x01\x90b\0#\x10V[Q\x92Z\xF1Pb\0*Rb\0&1V[P8b\0)\xD2V\xFE`\xE0`@\x90\x80\x82R4b\0\x04\x99WPb\0\x13\x01\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xE6V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04JW\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04DW\x82b\0\0V\x91\x85\x01b\0\x05ZV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04DW\x83\x91b\0\0u\x91\x84\x01b\0\x05ZV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04?W\x84Q\x94\x86\x86\x11b\0\x04)W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06~V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xD8W[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03pW\x89\x92b\0\x03dW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03PW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06~V[\x82\x81\x11b\0\x02\xFBW[P\x87\x91\x83\x11`\x01\x14b\0\x02\x97W\x88\x92b\0\x02\x8BW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06~V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02kWPP`\x01\x14b\0\x02+W[Pb\0\x01m\x92P\x03\x82b\0\x04\xE6V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02\x17WP\x83\x90RQ\x90 `\xC0Ra\x0CE\x90\x81b\0\x06\xBC\x829`\x80Q\x81a\x06\x84\x01R`\xA0Q\x81a\nM\x01R`\xC0Q\x81a\nt\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02RWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x028V[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xE4WPP\x84\x11b\0\x02\xCAW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xBCV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xA9V[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03FW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x037WPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x03'V[\x92P\x81\x92b\0\x03\x18V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xC1WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xA7W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x99V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x7FV[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x04\x1FW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\x10WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x01V[\x92P\x81\x92b\0\x03\xF4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\nV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04)W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x06%W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04)W` \x90`@Q\x92b\0\x05\x95\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xE6V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xD0W`\0[\x81\x81\x10b\0\x05\xBCWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xA6V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xB0W[` \x83\x10\x14b\0\x06\x9AWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\x8EV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003`\xA0`@\x90\x80\x82R4b\0\x01[WP`\x01\x80U\x80Qa\x11D\x80\x82\x01\x91`\x01`\x01`@\x1B\x03\x91\x82\x84\x11\x82\x85\x10\x17b\0\x01EWb\0\x1E\xE5\x829\x80`\0\x93\x03\x90\x83\xF0\x80\x15b\0\x01;W`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81\x90R\x80;\x15b\0\0\xE9W\x90\x82\x80\x92`\x84\x86Q\x80\x96\x81\x93c&lE\xBB`\xE1\x1B\x83R\x89`\x04\x84\x01R\x81`D\x84\x01R```$\x84\x01R\x81`d\x84\x01RZ\xF1\x80\x15b\0\0\xDFWb\0\0\xB8W[\x83Qa\x1D<\x90\x81b\0\x01\xA9\x829`\x80Q\x81\x81\x81a\x0Bj\x01Ra\x10\x08\x01R\xF3[\x82\x11b\0\0\xCBWP\x81R8\x80\x80b\0\0\x99V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x84Q=\x84\x82>=\x90\xFD[\x83QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x83Q=\x84\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003`\x80`@\x90\x80\x82R4a\x01\x06WP\x80Q`\x1Fa\x07\xA18\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xF0W\x80\x84\x92``\x94\x87R\x839\x81\x01\x03\x12a\0\xA1Wa\0O\x81a\x01SV[\x90\x82a\0]` \x83\x01a\x01SV[\x91\x01Q\x91`\x01\x80`\xA0\x1B\x03\x19\x913\x83`\0T\x16\x17`\0U`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x83`\x01T\x16\x17`\x01U\x16\x90`\x02T\x16\x17`\x02U`\x03UQa\x064\x90\x81a\x01m\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x01gWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003`\xA0\x80`@R4a\0\xDCW`@Q`\x1Fa\x08e8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xC6W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0vWQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0qW`\x80R`@Qa\x07;\x90\x81a\x01*\x829`\x80Q\x81a\x01B\x01R\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80b.RK\x14a\x03\x9FW\x80ch\xBD>8\x14a\x03eW\x80cs\xCB-\x03\x14a\x02\x9AW\x80c\x8A\x04\xBD\xD5\x14a\x01\x87W\x80c\xAC\xAD)\x89\x14a\x01qW\x80c\xAF\xBA\x13\xC4\x14a\x01/Wc\xDC\x17\x83U\x14a\0\xCAWPa\0\x11V[\x904a\x01*W` \x80`\x03\x196\x01\x12a\x01%W\x91\x81Q\x92\x83\x91` \x83R``Q\x91\x82` \x85\x01R\x81[\x83\x81\x10a\x01\x10WPP\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x81\x01\x03\x01\x90\xF3[`\x80\x81\x01Q\x87\x82\x01\x87\x01R\x86\x94P\x81\x01a\0\xF3V[a\x04\xF3V[a\x04\xA3V[P4a\x01*W6`\x03\x19\x01\x12a\x01%WQ\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[P4a\x01*Wa\x01\x806a\x05\xECV[PPPP\x80\xF3[P4a\x01*Wa\x01\x966a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x03a\x02\x10WPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x02\xB5\xE3\xAF\x16\xB1\x88\0\0\x80gEc\x91\x82D\xF4\0\0\x92[Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[\x03\x90\xF3[`\t\x81\x03a\x02QWPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x05k\xC7^-c\x10\0\0h\x06\x81U\xA46v\xE0\0\0\x90g\x8A\xC7#\x04\x89\xE8\0\0\x92a\x01\xE1V[`\x08\x14a\x02dW[a\x02\x0C\x93\x94\x95a\x01\xE1V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90Ph\x06\x81U\xA46v\xE0\0\0a\x02YV[P4a\x01*Wa\x02\xA96a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x14a\x030W[`\x02\x14a\x03\x03W[a\x02\x0C\x93\x94\x95Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90P\x80a\x02\xD2V[g\r\xE0\xB6\xB3\xA7d\0\0\x95P`\x01\x94Pg7\x82\xDA\xCE\x9D\x90\0\0\x93Pg)\xA2$\x1A\xF6,\0\0\x92Pg\x1B\xC1mgN\xC8\0\0\x91Pa\x02\xCAV[P\x904a\x01*W`\xC0\x91a\x03x6a\x05\xECV[PPPP\x80\x82Q\x92\x81\x84R\x81` \x85\x01R\x83\x01R\x80``\x83\x01R\x80`\x80\x83\x01R`\xA0\x82\x01R\xF3[P\x904a\x04\xA3W\x80`\x03\x196\x01\x12a\x01%Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92`$\x805\x85\x81\x11a\x04\x9EW6`#\x82\x01\x12\x15a\x04\x99W\x80\x83\x015\x92\x86\x84\x11a\x04\x87W\x84Q\x96`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x88\x01\x90\x81\x11\x88\x82\x10\x17a\x04uW\x85R\x83\x87R6\x83\x85\x84\x01\x01\x11a\x04#WP\x91` \x95\x81\x87\x93\x87\x95\x01\x84\x83\x017\x01\x01RQ\x90\x81R\xF3[`\x84\x90`'\x84` \x88Q\x93bF\x1B\xCD`\xE5\x1B\x85R\x84\x01R\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R\xFD[cNH{q`\xE0\x1B\x87R`A\x82R\x83\x87\xFD[cNH{q`\xE0\x1B\x86R`A\x90R\x81\x85\xFD[a\x05\x93V[a\x05CV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90```\x03\x19\x83\x01\x12a\x01%W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\x07\0W\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x04\x9EW\x80`#\x83\x01\x12\x15a\x04\x99W\x81`\x04\x015\x93\x84\x11a\x06\xA7W`$\x84\x83\x01\x01\x11a\x06NW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xC5J`\xF7\x11\xAC\x0C\xBD\xFD;\x8F\x93\x12\xBC\xD0<\xA0^\x14(\x07\x91\xB2\xA1@\x9F\xF4\x9D\xE4'\xD7\xB2dsolcC\0\x08\x16\x003A0O\xAC\xD92=u\xB1\x1B\xCD\xD6\t\xCB8\xEF\xFF\xFD\xB0W\x10\xF7\xCA\xF0\xE9\xB1lm\x9Dp\x9FP\xA2dipfsX\"\x12 \xCC\xBB9\n\x11\xD4\xD23\xBB\x03\xDC\xE5\xC1\x18\x07\xAAl\x10\x84\n\xB0\x06\x8D\x02\x96\xEFRS\x14\t\xE0%dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static DFMMINIT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct DFMMInit(::ethers::contract::Contract); - impl ::core::clone::Clone for DFMMInit { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for DFMMInit { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for DFMMInit { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for DFMMInit { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(DFMMInit)).field(&self.address()).finish() - } - } - impl DFMMInit { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - DFMMINIT_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - DFMMINIT_ABI.clone(), - DFMMINIT_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `IS_TEST` (0xfa7626d4) function - pub fn is_test(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([250, 118, 38, 212], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `POOL_ID` (0xe0d7d0e9) function - pub fn pool_id( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([224, 215, 208, 233], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `TEST_SWAP_FEE` (0x620a2607) function - pub fn test_swap_fee( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([98, 10, 38, 7], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeArtifacts` (0xb5508aa9) function - pub fn exclude_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([181, 80, 138, 169], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeContracts` (0xe20c9f71) function - pub fn exclude_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([226, 12, 159, 113], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeSenders` (0x1ed7831c) function - pub fn exclude_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([30, 215, 131, 28], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `failed` (0xba414fa6) function - pub fn failed(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([186, 65, 79, 166], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolLiquidityToken` (0xe21485ad) function - pub fn get_pool_liquidity_token( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([226, 20, 133, 173], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setUp` (0x0a9254e4) function - pub fn set_up(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([10, 146, 84, 228], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifactSelectors` (0x66d9a9a0) function - pub fn target_artifact_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([102, 217, 169, 160], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifacts` (0x85226c81) function - pub fn target_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([133, 34, 108, 129], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetContracts` (0x3f7286f4) function - pub fn target_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([63, 114, 134, 244], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetInterfaces` (0x2ade3880) function - pub fn target_interfaces( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([42, 222, 56, 128], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSelectors` (0x916a17c6) function - pub fn target_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([145, 106, 23, 198], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSenders` (0x3e5e3c23) function - pub fn target_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([62, 94, 60, 35], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `test_DFMM_init_DeploysLPTokenClone` (0x298f22ba) function - pub fn test_dfmm_init_deploys_lp_token_clone( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([41, 143, 34, 186], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `test_DFMM_init_EmitsInitEvent` (0x084e6238) function - pub fn test_dfmm_init_emits_init_event( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([8, 78, 98, 56], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `test_DFMM_init_IncrementsPoolId` (0x586be2f9) function - pub fn test_dfmm_init_increments_pool_id( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([88, 107, 226, 249], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `test_DFMM_init_ReturnsStrategyInitialReserves` (0x7f3a45da) function - pub fn test_dfmm_init_returns_strategy_initial_reserves( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([127, 58, 69, 218], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `test_DFMM_init_RevertsWhenNotValid` (0x0bbcc1a6) function - pub fn test_dfmm_init_reverts_when_not_valid( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([11, 188, 193, 166], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `test_DFMM_init_RevertsWhenSameTokens` (0x516d2a5f) function - pub fn test_dfmm_init_reverts_when_same_tokens( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([81, 109, 42, 95], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `test_DFMM_init_StoresStrategyInitialReserves` (0xc840a39e) function - pub fn test_dfmm_init_stores_strategy_initial_reserves( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([200, 64, 163, 158], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `test_DFMM_init_TransfersInitialReserves` (0x8f094f6b) function - pub fn test_dfmm_init_transfers_initial_reserves( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([143, 9, 79, 107], ()) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Init` event - pub fn init_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, InitFilter> { - self.0.event() - } - ///Gets the contract's `log` event - pub fn log_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogFilter> { - self.0.event() - } - ///Gets the contract's `log_address` event - pub fn log_address_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogAddressFilter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_1_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray1Filter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_2_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray2Filter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_3_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray3Filter, - > { - self.0.event() - } - ///Gets the contract's `log_bytes` event - pub fn log_bytes_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogBytesFilter, - > { - self.0.event() - } - ///Gets the contract's `log_bytes32` event - pub fn log_bytes_32_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogBytes32Filter, - > { - self.0.event() - } - ///Gets the contract's `log_int` event - pub fn log_int_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogIntFilter> { - self.0.event() - } - ///Gets the contract's `log_named_address` event - pub fn log_named_address_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedAddressFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_1_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray1Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_2_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray2Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_3_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray3Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_bytes` event - pub fn log_named_bytes_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedBytesFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_bytes32` event - pub fn log_named_bytes_32_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedBytes32Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_decimal_int` event - pub fn log_named_decimal_int_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedDecimalIntFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_decimal_uint` event - pub fn log_named_decimal_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedDecimalUintFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_int` event - pub fn log_named_int_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedIntFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_string` event - pub fn log_named_string_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedStringFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_uint` event - pub fn log_named_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedUintFilter, - > { - self.0.event() - } - ///Gets the contract's `log_string` event - pub fn log_string_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogStringFilter, - > { - self.0.event() - } - ///Gets the contract's `log_uint` event - pub fn log_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogUintFilter> { - self.0.event() - } - ///Gets the contract's `logs` event - pub fn logs_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogsFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DFMMInitEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for DFMMInit { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Init", - abi = "Init(address,address,address,address,uint256,uint256,uint256,uint256)" - )] - pub struct InitFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub strategy: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_x: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_y: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log", abi = "log(string)")] - pub struct LogFilter(pub ::std::string::String); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_address", abi = "log_address(address)")] - pub struct LogAddressFilter(pub ::ethers::core::types::Address); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(uint256[])")] - pub struct LogArray1Filter { - pub val: ::std::vec::Vec<::ethers::core::types::U256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(int256[])")] - pub struct LogArray2Filter { - pub val: ::std::vec::Vec<::ethers::core::types::I256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(address[])")] - pub struct LogArray3Filter { - pub val: ::std::vec::Vec<::ethers::core::types::Address>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_bytes", abi = "log_bytes(bytes)")] - pub struct LogBytesFilter(pub ::ethers::core::types::Bytes); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_bytes32", abi = "log_bytes32(bytes32)")] - pub struct LogBytes32Filter(pub [u8; 32]); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_int", abi = "log_int(int256)")] - pub struct LogIntFilter(pub ::ethers::core::types::I256); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_address", abi = "log_named_address(string,address)")] - pub struct LogNamedAddressFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,uint256[])")] - pub struct LogNamedArray1Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::U256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,int256[])")] - pub struct LogNamedArray2Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::I256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,address[])")] - pub struct LogNamedArray3Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::Address>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_bytes", abi = "log_named_bytes(string,bytes)")] - pub struct LogNamedBytesFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_bytes32", abi = "log_named_bytes32(string,bytes32)")] - pub struct LogNamedBytes32Filter { - pub key: ::std::string::String, - pub val: [u8; 32], - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "log_named_decimal_int", - abi = "log_named_decimal_int(string,int256,uint256)" - )] - pub struct LogNamedDecimalIntFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::I256, - pub decimals: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "log_named_decimal_uint", - abi = "log_named_decimal_uint(string,uint256,uint256)" - )] - pub struct LogNamedDecimalUintFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::U256, - pub decimals: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_int", abi = "log_named_int(string,int256)")] - pub struct LogNamedIntFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_string", abi = "log_named_string(string,string)")] - pub struct LogNamedStringFilter { - pub key: ::std::string::String, - pub val: ::std::string::String, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_uint", abi = "log_named_uint(string,uint256)")] - pub struct LogNamedUintFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_string", abi = "log_string(string)")] - pub struct LogStringFilter(pub ::std::string::String); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_uint", abi = "log_uint(uint256)")] - pub struct LogUintFilter(pub ::ethers::core::types::U256); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "logs", abi = "logs(bytes)")] - pub struct LogsFilter(pub ::ethers::core::types::Bytes); - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum DFMMInitEvents { - InitFilter(InitFilter), - LogFilter(LogFilter), - LogAddressFilter(LogAddressFilter), - LogArray1Filter(LogArray1Filter), - LogArray2Filter(LogArray2Filter), - LogArray3Filter(LogArray3Filter), - LogBytesFilter(LogBytesFilter), - LogBytes32Filter(LogBytes32Filter), - LogIntFilter(LogIntFilter), - LogNamedAddressFilter(LogNamedAddressFilter), - LogNamedArray1Filter(LogNamedArray1Filter), - LogNamedArray2Filter(LogNamedArray2Filter), - LogNamedArray3Filter(LogNamedArray3Filter), - LogNamedBytesFilter(LogNamedBytesFilter), - LogNamedBytes32Filter(LogNamedBytes32Filter), - LogNamedDecimalIntFilter(LogNamedDecimalIntFilter), - LogNamedDecimalUintFilter(LogNamedDecimalUintFilter), - LogNamedIntFilter(LogNamedIntFilter), - LogNamedStringFilter(LogNamedStringFilter), - LogNamedUintFilter(LogNamedUintFilter), - LogStringFilter(LogStringFilter), - LogUintFilter(LogUintFilter), - LogsFilter(LogsFilter), - } - impl ::ethers::contract::EthLogDecode for DFMMInitEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = InitFilter::decode_log(log) { - return Ok(DFMMInitEvents::InitFilter(decoded)); - } - if let Ok(decoded) = LogFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogFilter(decoded)); - } - if let Ok(decoded) = LogAddressFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogAddressFilter(decoded)); - } - if let Ok(decoded) = LogArray1Filter::decode_log(log) { - return Ok(DFMMInitEvents::LogArray1Filter(decoded)); - } - if let Ok(decoded) = LogArray2Filter::decode_log(log) { - return Ok(DFMMInitEvents::LogArray2Filter(decoded)); - } - if let Ok(decoded) = LogArray3Filter::decode_log(log) { - return Ok(DFMMInitEvents::LogArray3Filter(decoded)); - } - if let Ok(decoded) = LogBytesFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogBytesFilter(decoded)); - } - if let Ok(decoded) = LogBytes32Filter::decode_log(log) { - return Ok(DFMMInitEvents::LogBytes32Filter(decoded)); - } - if let Ok(decoded) = LogIntFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedAddressFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogNamedAddressFilter(decoded)); - } - if let Ok(decoded) = LogNamedArray1Filter::decode_log(log) { - return Ok(DFMMInitEvents::LogNamedArray1Filter(decoded)); - } - if let Ok(decoded) = LogNamedArray2Filter::decode_log(log) { - return Ok(DFMMInitEvents::LogNamedArray2Filter(decoded)); - } - if let Ok(decoded) = LogNamedArray3Filter::decode_log(log) { - return Ok(DFMMInitEvents::LogNamedArray3Filter(decoded)); - } - if let Ok(decoded) = LogNamedBytesFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogNamedBytesFilter(decoded)); - } - if let Ok(decoded) = LogNamedBytes32Filter::decode_log(log) { - return Ok(DFMMInitEvents::LogNamedBytes32Filter(decoded)); - } - if let Ok(decoded) = LogNamedDecimalIntFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogNamedDecimalIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedDecimalUintFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogNamedDecimalUintFilter(decoded)); - } - if let Ok(decoded) = LogNamedIntFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogNamedIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedStringFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogNamedStringFilter(decoded)); - } - if let Ok(decoded) = LogNamedUintFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogNamedUintFilter(decoded)); - } - if let Ok(decoded) = LogStringFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogStringFilter(decoded)); - } - if let Ok(decoded) = LogUintFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogUintFilter(decoded)); - } - if let Ok(decoded) = LogsFilter::decode_log(log) { - return Ok(DFMMInitEvents::LogsFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for DFMMInitEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::InitFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogAddressFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray1Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray2Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray3Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogBytesFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogBytes32Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogIntFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogNamedAddressFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray1Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray2Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray3Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedBytesFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedBytes32Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedDecimalIntFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedDecimalUintFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedIntFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogNamedStringFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedUintFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogStringFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogUintFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogsFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: InitFilter) -> Self { - Self::InitFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogFilter) -> Self { - Self::LogFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogAddressFilter) -> Self { - Self::LogAddressFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogArray1Filter) -> Self { - Self::LogArray1Filter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogArray2Filter) -> Self { - Self::LogArray2Filter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogArray3Filter) -> Self { - Self::LogArray3Filter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogBytesFilter) -> Self { - Self::LogBytesFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogBytes32Filter) -> Self { - Self::LogBytes32Filter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogIntFilter) -> Self { - Self::LogIntFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogNamedAddressFilter) -> Self { - Self::LogNamedAddressFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogNamedArray1Filter) -> Self { - Self::LogNamedArray1Filter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogNamedArray2Filter) -> Self { - Self::LogNamedArray2Filter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogNamedArray3Filter) -> Self { - Self::LogNamedArray3Filter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogNamedBytesFilter) -> Self { - Self::LogNamedBytesFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogNamedBytes32Filter) -> Self { - Self::LogNamedBytes32Filter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogNamedDecimalIntFilter) -> Self { - Self::LogNamedDecimalIntFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogNamedDecimalUintFilter) -> Self { - Self::LogNamedDecimalUintFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogNamedIntFilter) -> Self { - Self::LogNamedIntFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogNamedStringFilter) -> Self { - Self::LogNamedStringFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogNamedUintFilter) -> Self { - Self::LogNamedUintFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogStringFilter) -> Self { - Self::LogStringFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogUintFilter) -> Self { - Self::LogUintFilter(value) - } - } - impl ::core::convert::From for DFMMInitEvents { - fn from(value: LogsFilter) -> Self { - Self::LogsFilter(value) - } - } - ///Container type for all input parameters for the `IS_TEST` function with signature `IS_TEST()` and selector `0xfa7626d4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "IS_TEST", abi = "IS_TEST()")] - pub struct IsTestCall; - ///Container type for all input parameters for the `POOL_ID` function with signature `POOL_ID()` and selector `0xe0d7d0e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "POOL_ID", abi = "POOL_ID()")] - pub struct PoolIdCall; - ///Container type for all input parameters for the `TEST_SWAP_FEE` function with signature `TEST_SWAP_FEE()` and selector `0x620a2607` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "TEST_SWAP_FEE", abi = "TEST_SWAP_FEE()")] - pub struct TestSwapFeeCall; - ///Container type for all input parameters for the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeArtifacts", abi = "excludeArtifacts()")] - pub struct ExcludeArtifactsCall; - ///Container type for all input parameters for the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeContracts", abi = "excludeContracts()")] - pub struct ExcludeContractsCall; - ///Container type for all input parameters for the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeSenders", abi = "excludeSenders()")] - pub struct ExcludeSendersCall; - ///Container type for all input parameters for the `failed` function with signature `failed()` and selector `0xba414fa6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "failed", abi = "failed()")] - pub struct FailedCall; - ///Container type for all input parameters for the `getPoolLiquidityToken` function with signature `getPoolLiquidityToken(uint256)` and selector `0xe21485ad` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolLiquidityToken", abi = "getPoolLiquidityToken(uint256)")] - pub struct GetPoolLiquidityTokenCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `setUp` function with signature `setUp()` and selector `0x0a9254e4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setUp", abi = "setUp()")] - pub struct SetUpCall; - ///Container type for all input parameters for the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifactSelectors", abi = "targetArtifactSelectors()")] - pub struct TargetArtifactSelectorsCall; - ///Container type for all input parameters for the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifacts", abi = "targetArtifacts()")] - pub struct TargetArtifactsCall; - ///Container type for all input parameters for the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetContracts", abi = "targetContracts()")] - pub struct TargetContractsCall; - ///Container type for all input parameters for the `targetInterfaces` function with signature `targetInterfaces()` and selector `0x2ade3880` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetInterfaces", abi = "targetInterfaces()")] - pub struct TargetInterfacesCall; - ///Container type for all input parameters for the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSelectors", abi = "targetSelectors()")] - pub struct TargetSelectorsCall; - ///Container type for all input parameters for the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSenders", abi = "targetSenders()")] - pub struct TargetSendersCall; - ///Container type for all input parameters for the `test_DFMM_init_DeploysLPTokenClone` function with signature `test_DFMM_init_DeploysLPTokenClone()` and selector `0x298f22ba` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "test_DFMM_init_DeploysLPTokenClone", - abi = "test_DFMM_init_DeploysLPTokenClone()" - )] - pub struct TestDFMMInitDeploysLPTokenCloneCall; - ///Container type for all input parameters for the `test_DFMM_init_EmitsInitEvent` function with signature `test_DFMM_init_EmitsInitEvent()` and selector `0x084e6238` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "test_DFMM_init_EmitsInitEvent", - abi = "test_DFMM_init_EmitsInitEvent()" - )] - pub struct TestDFMMInitEmitsInitEventCall; - ///Container type for all input parameters for the `test_DFMM_init_IncrementsPoolId` function with signature `test_DFMM_init_IncrementsPoolId()` and selector `0x586be2f9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "test_DFMM_init_IncrementsPoolId", - abi = "test_DFMM_init_IncrementsPoolId()" - )] - pub struct TestDFMMInitIncrementsPoolIdCall; - ///Container type for all input parameters for the `test_DFMM_init_ReturnsStrategyInitialReserves` function with signature `test_DFMM_init_ReturnsStrategyInitialReserves()` and selector `0x7f3a45da` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "test_DFMM_init_ReturnsStrategyInitialReserves", - abi = "test_DFMM_init_ReturnsStrategyInitialReserves()" - )] - pub struct TestDFMMInitReturnsStrategyInitialReservesCall; - ///Container type for all input parameters for the `test_DFMM_init_RevertsWhenNotValid` function with signature `test_DFMM_init_RevertsWhenNotValid()` and selector `0x0bbcc1a6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "test_DFMM_init_RevertsWhenNotValid", - abi = "test_DFMM_init_RevertsWhenNotValid()" - )] - pub struct TestDFMMInitRevertsWhenNotValidCall; - ///Container type for all input parameters for the `test_DFMM_init_RevertsWhenSameTokens` function with signature `test_DFMM_init_RevertsWhenSameTokens()` and selector `0x516d2a5f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "test_DFMM_init_RevertsWhenSameTokens", - abi = "test_DFMM_init_RevertsWhenSameTokens()" - )] - pub struct TestDFMMInitRevertsWhenSameTokensCall; - ///Container type for all input parameters for the `test_DFMM_init_StoresStrategyInitialReserves` function with signature `test_DFMM_init_StoresStrategyInitialReserves()` and selector `0xc840a39e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "test_DFMM_init_StoresStrategyInitialReserves", - abi = "test_DFMM_init_StoresStrategyInitialReserves()" - )] - pub struct TestDFMMInitStoresStrategyInitialReservesCall; - ///Container type for all input parameters for the `test_DFMM_init_TransfersInitialReserves` function with signature `test_DFMM_init_TransfersInitialReserves()` and selector `0x8f094f6b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "test_DFMM_init_TransfersInitialReserves", - abi = "test_DFMM_init_TransfersInitialReserves()" - )] - pub struct TestDFMMInitTransfersInitialReservesCall; - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum DFMMInitCalls { - IsTest(IsTestCall), - PoolId(PoolIdCall), - TestSwapFee(TestSwapFeeCall), - ExcludeArtifacts(ExcludeArtifactsCall), - ExcludeContracts(ExcludeContractsCall), - ExcludeSenders(ExcludeSendersCall), - Failed(FailedCall), - GetPoolLiquidityToken(GetPoolLiquidityTokenCall), - SetUp(SetUpCall), - TargetArtifactSelectors(TargetArtifactSelectorsCall), - TargetArtifacts(TargetArtifactsCall), - TargetContracts(TargetContractsCall), - TargetInterfaces(TargetInterfacesCall), - TargetSelectors(TargetSelectorsCall), - TargetSenders(TargetSendersCall), - TestDFMMInitDeploysLPTokenClone(TestDFMMInitDeploysLPTokenCloneCall), - TestDFMMInitEmitsInitEvent(TestDFMMInitEmitsInitEventCall), - TestDFMMInitIncrementsPoolId(TestDFMMInitIncrementsPoolIdCall), - TestDFMMInitReturnsStrategyInitialReserves( - TestDFMMInitReturnsStrategyInitialReservesCall, - ), - TestDFMMInitRevertsWhenNotValid(TestDFMMInitRevertsWhenNotValidCall), - TestDFMMInitRevertsWhenSameTokens(TestDFMMInitRevertsWhenSameTokensCall), - TestDFMMInitStoresStrategyInitialReserves( - TestDFMMInitStoresStrategyInitialReservesCall, - ), - TestDFMMInitTransfersInitialReserves(TestDFMMInitTransfersInitialReservesCall), - } - impl ::ethers::core::abi::AbiDecode for DFMMInitCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::IsTest(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PoolId(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestSwapFee(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeArtifacts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeContracts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeSenders(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Failed(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPoolLiquidityToken(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SetUp(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetArtifactSelectors(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetArtifacts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetContracts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetInterfaces(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetSelectors(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetSenders(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestDFMMInitDeploysLPTokenClone(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestDFMMInitEmitsInitEvent(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestDFMMInitIncrementsPoolId(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestDFMMInitReturnsStrategyInitialReserves(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestDFMMInitRevertsWhenNotValid(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestDFMMInitRevertsWhenSameTokens(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestDFMMInitStoresStrategyInitialReserves(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestDFMMInitTransfersInitialReserves(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for DFMMInitCalls { - fn encode(self) -> Vec { - match self { - Self::IsTest(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PoolId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TestSwapFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Failed(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolLiquidityToken(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetUp(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TargetArtifactSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetInterfaces(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TestDFMMInitDeploysLPTokenClone(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TestDFMMInitEmitsInitEvent(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TestDFMMInitIncrementsPoolId(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TestDFMMInitReturnsStrategyInitialReserves(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TestDFMMInitRevertsWhenNotValid(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TestDFMMInitRevertsWhenSameTokens(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TestDFMMInitStoresStrategyInitialReserves(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TestDFMMInitTransfersInitialReserves(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for DFMMInitCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::IsTest(element) => ::core::fmt::Display::fmt(element, f), - Self::PoolId(element) => ::core::fmt::Display::fmt(element, f), - Self::TestSwapFee(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeSenders(element) => ::core::fmt::Display::fmt(element, f), - Self::Failed(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolLiquidityToken(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SetUp(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetArtifactSelectors(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TargetArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetInterfaces(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSelectors(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSenders(element) => ::core::fmt::Display::fmt(element, f), - Self::TestDFMMInitDeploysLPTokenClone(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TestDFMMInitEmitsInitEvent(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TestDFMMInitIncrementsPoolId(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TestDFMMInitReturnsStrategyInitialReserves(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TestDFMMInitRevertsWhenNotValid(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TestDFMMInitRevertsWhenSameTokens(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TestDFMMInitStoresStrategyInitialReserves(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TestDFMMInitTransfersInitialReserves(element) => { - ::core::fmt::Display::fmt(element, f) - } - } - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: IsTestCall) -> Self { - Self::IsTest(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: PoolIdCall) -> Self { - Self::PoolId(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TestSwapFeeCall) -> Self { - Self::TestSwapFee(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: ExcludeArtifactsCall) -> Self { - Self::ExcludeArtifacts(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: ExcludeContractsCall) -> Self { - Self::ExcludeContracts(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: ExcludeSendersCall) -> Self { - Self::ExcludeSenders(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: FailedCall) -> Self { - Self::Failed(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: GetPoolLiquidityTokenCall) -> Self { - Self::GetPoolLiquidityToken(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: SetUpCall) -> Self { - Self::SetUp(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TargetArtifactSelectorsCall) -> Self { - Self::TargetArtifactSelectors(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TargetArtifactsCall) -> Self { - Self::TargetArtifacts(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TargetContractsCall) -> Self { - Self::TargetContracts(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TargetInterfacesCall) -> Self { - Self::TargetInterfaces(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TargetSelectorsCall) -> Self { - Self::TargetSelectors(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TargetSendersCall) -> Self { - Self::TargetSenders(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TestDFMMInitDeploysLPTokenCloneCall) -> Self { - Self::TestDFMMInitDeploysLPTokenClone(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TestDFMMInitEmitsInitEventCall) -> Self { - Self::TestDFMMInitEmitsInitEvent(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TestDFMMInitIncrementsPoolIdCall) -> Self { - Self::TestDFMMInitIncrementsPoolId(value) - } - } - impl ::core::convert::From - for DFMMInitCalls { - fn from(value: TestDFMMInitReturnsStrategyInitialReservesCall) -> Self { - Self::TestDFMMInitReturnsStrategyInitialReserves(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TestDFMMInitRevertsWhenNotValidCall) -> Self { - Self::TestDFMMInitRevertsWhenNotValid(value) - } - } - impl ::core::convert::From for DFMMInitCalls { - fn from(value: TestDFMMInitRevertsWhenSameTokensCall) -> Self { - Self::TestDFMMInitRevertsWhenSameTokens(value) - } - } - impl ::core::convert::From - for DFMMInitCalls { - fn from(value: TestDFMMInitStoresStrategyInitialReservesCall) -> Self { - Self::TestDFMMInitStoresStrategyInitialReserves(value) - } - } - impl ::core::convert::From - for DFMMInitCalls { - fn from(value: TestDFMMInitTransfersInitialReservesCall) -> Self { - Self::TestDFMMInitTransfersInitialReserves(value) - } - } - ///Container type for all return fields from the `IS_TEST` function with signature `IS_TEST()` and selector `0xfa7626d4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IsTestReturn(pub bool); - ///Container type for all return fields from the `POOL_ID` function with signature `POOL_ID()` and selector `0xe0d7d0e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PoolIdReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `TEST_SWAP_FEE` function with signature `TEST_SWAP_FEE()` and selector `0x620a2607` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TestSwapFeeReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeArtifactsReturn { - pub excluded_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeContractsReturn { - pub excluded_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeSendersReturn { - pub excluded_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `failed` function with signature `failed()` and selector `0xba414fa6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct FailedReturn(pub bool); - ///Container type for all return fields from the `getPoolLiquidityToken` function with signature `getPoolLiquidityToken(uint256)` and selector `0xe21485ad` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolLiquidityTokenReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactSelectorsReturn { - pub targeted_artifact_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactsReturn { - pub targeted_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetContractsReturn { - pub targeted_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `targetInterfaces` function with signature `targetInterfaces()` and selector `0x2ade3880` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetInterfacesReturn { - pub targeted_interfaces: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSelectorsReturn { - pub targeted_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSendersReturn { - pub targeted_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } -} diff --git a/crates/bindings/src/dfmm_set_up.rs b/crates/bindings/src/dfmm_set_up.rs deleted file mode 100644 index 3777f5030..000000000 --- a/crates/bindings/src/dfmm_set_up.rs +++ /dev/null @@ -1,2633 +0,0 @@ -pub use dfmm_set_up::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod dfmm_set_up { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("IS_TEST"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("IS_TEST"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("POOL_ID"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("POOL_ID"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("TEST_SWAP_FEE"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("TEST_SWAP_FEE"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeArtifacts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeArtifacts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "excludedArtifacts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeContracts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeContracts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "excludedContracts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeSenders"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeSenders"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("excludedSenders_"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("failed"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("failed"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPoolLiquidityToken"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "getPoolLiquidityToken", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("setUp"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("setUp"), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetArtifactSelectors"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "targetArtifactSelectors", - ), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedArtifactSelectors_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzSelector[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetArtifacts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetArtifacts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedArtifacts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetContracts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetContracts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedContracts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetInterfaces"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetInterfaces"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedInterfaces_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzInterface[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetSelectors"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetSelectors"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedSelectors_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzSelector[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetSenders"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetSenders"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetedSenders_"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("log"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_address"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_address"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_array"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_bytes"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_bytes"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_bytes32"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_bytes32"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_int"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_address"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_address"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_array"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_bytes"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_bytes"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_bytes32"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_bytes32"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_decimal_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "log_named_decimal_int", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_decimal_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "log_named_decimal_uint", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_int"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_string"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_string"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_uint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_string"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_string"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_uint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("logs"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("logs"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static DFMMSETUP_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\x000W`\x01`\xFF\x19\x81\x81`\x07T\x16\x17`\x07U`\x0BT\x16\x17`\x0BU`@Qaj\x8C\x90\x81a\0~\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10\x15b\0\0rW[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x805`\xE0\x1C\x80c\n\x92T\xE4\x14b\0\x0E\x92W\x80c\x1E\xD7\x83\x1C\x14b\0\x0E\x0CW\x80c*\xDE8\x80\x14b\0\x0B`W\x80c>^<#\x14b\0\n\xDAW\x80c?r\x86\xF4\x14b\0\nTW\x80cb\n&\x07\x14b\0\n1W\x80cf\xD9\xA9\xA0\x14b\0\x08\x9BW\x80c\x85\"l\x81\x14b\0\x07\\W\x80c\x91j\x17\xC6\x14b\0\x04\xE0W\x80c\xB5P\x8A\xA9\x14b\0\x03\x8DW\x80c\xBAAO\xA6\x14b\0\x03eW\x80c\xE0\xD7\xD0\xE9\x14b\0\x03FW\x80c\xE2\x0C\x9Fq\x14b\0\x02\xAFW\x80c\xE2\x14\x85\xAD\x14b\0\x01bWc\xFAv&\xD4\x14b\0\x013WPb\0\0\x0FV[4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW` `\xFF`\x07T\x16`@Q\x90\x15\x15\x81R\xF3[b\0\x12\xF7V[b\0\x12\xA7V[P4b\0\x01\\W` 6`\x03\x19\x01\x12b\0\x01VW`\x1CT`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x80;\x15b\0\x02\xA9W`\xE0`$\x91`@Q\x92\x83\x80\x92c\x06\x8B\xCD\x8D\x85\x1B\x82R`\x045`\x04\x83\x01RZ\xFA\x92\x83\x15b\0\x02\x9DW\x92b\0\x01\xCBW[P`\xC0` \x92\x01Q\x16`@Q\x90\x81R\xF3[\x91P`\xE0\x82=`\xE0\x11b\0\x02\x94W[\x81b\0\x01\xE9`\xE0\x93\x83b\0\x15!V[\x81\x01\x03\x12b\0\x01VW`@Q`\xE0\x81\x01\x90\x80\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17b\0\x02~Wb\0\x02r`\xC0` \x95\x81\x94`@Rb\0\x02'\x81b\0\x17\x11V[\x84Rb\0\x026\x87\x82\x01b\0\x17\x11V[\x87\x85\x01Rb\0\x02H`@\x82\x01b\0\x17\x11V[`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01b\0\x17\x11V[\x82\x82\x01R\x92Pb\0\x01\xBAV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[=\x91Pb\0\x01\xDAV[`@Q\x90=\x90\x82>=\x90\xFD[b\0\x16\xBEV[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`@Q`\x13\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90\x92\x91[\x82\x82\x10b\0\x03%Wb\0\x03!\x85b\0\x03\x14\x81\x89\x03\x82b\0\x15!V[`@Q\x91\x82\x91\x82b\0\x13GV[\x03\x90\xF3[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x02\xF9V[P4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW` `!T`@Q\x90\x81R\xF3[P4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW` b\0\x03\x83b\0\x15|V[`@Q\x90\x15\x15\x81R\xF3[P4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW`\x17Tb\0\x03\xAD\x81b\0\x15DV[b\0\x03\xBC`@Q\x91\x82b\0\x15!V[\x81\x81R` \x91\x82\x82\x01`\x17`\0R\x7F\xC6$\xB6l\xC0\x13\x8B\x8F\xAB\xC2\t$\x7Fr\xD7X\xE1\xCF3CumT;\xAD\xBF$!+\xED\x8C\x15\x90`\0\x90[\x83\x82\x10b\0\x04\x08W`@Q\x80b\0\x03!\x87\x82b\0\x14qV[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x04\xD5W[\x8B\x83\x10\x81\x14b\0\x04\xC1W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x04\xA3WP`\x01\x14b\0\x04fW[Pb\0\x04W\x81`\x01\x96\x03\x82b\0\x15!V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x03\xF0V[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x04\x8BWP\x81\x01\x83\x01\x94Pb\0\x04Wb\0\x04FV[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x04rV[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x04Wb\0\x04FV[cNH{q`\xE0\x1B\x87R`\"`\x04R`$\x87\xFD[\x91`\x7F\x16\x91b\0\x04#V[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`\x1ATb\0\x05\x01\x81b\0\x15DV[\x90b\0\x05\x11`@Q\x92\x83b\0\x15!V[\x80\x82R`\x1A\x83R\x82\x7F\x05|8J}\x1CT\xF3\xA1\xB2\xE5\xE6{&\x17\xB8\"O\xDF\xD1\xEAr4\xEE\xA5s\xA6\xFFf_\xF6>` \x84\x01[\x83\x83\x10b\0\x05WW`@Q\x80b\0\x03!\x87\x82b\0\x13\xB3V[`@Qb\0\x05e\x81b\0\x15\x04V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\x06\xECW\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\x05\xFB\x94T\x91\x81\x81\x10b\0\x06\xCFW[\x81\x81\x10b\0\x06\xB2W[\x81\x81\x10b\0\x06\x95W[\x81\x81\x10b\0\x06xW[\x81\x81\x10b\0\x06[W[\x81\x81\x10b\0\x06>W[\x81\x81\x10b\0\x06#W[\x10b\0\x06\x0EW[P\x03\x82b\0\x15!V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x05?V[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x86\x018b\0\x05\xF2V[\x82\x8A\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xEBV[`@\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xE2V[``\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xD9V[`\x80\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xD0V[`\xA0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xC7V[`\xC0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xBEV[`\xE0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xB5V[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\x05\x8DV[P4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW`\x18Tb\0\x07|\x81b\0\x15DV[b\0\x07\x8B`@Q\x91\x82b\0\x15!V[\x81\x81R` \x91\x82\x82\x01`\x18`\0R\x7F\xB1=-v\xD1\xF4\xB7\xBE\x83H\x82\xE4\x10\xB3\xE3\xA8\xAF\xAFi\xF86\0\xAE$\xDB5C\x91\xD27\x8D.\x90`\0\x90[\x83\x82\x10b\0\x07\xD7W`@Q\x80b\0\x03!\x87\x82b\0\x14qV[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x08\x90W[\x8B\x83\x10\x81\x14b\0\x04\xC1W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x08rWP`\x01\x14b\0\x085W[Pb\0\x08&\x81`\x01\x96\x03\x82b\0\x15!V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x07\xBFV[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x08ZWP\x81\x01\x83\x01\x94Pb\0\x08&b\0\x08\x15V[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x08AV[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x08&b\0\x08\x15V[\x91`\x7F\x16\x91b\0\x07\xF2V[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`\x19Tb\0\x08\xBC\x81b\0\x15DV[\x90b\0\x08\xCC`@Q\x92\x83b\0\x15!V[\x80\x82R`\x19\x83R\x82\x7F\x94I\x98'>G{IQD\xFB\x87\x94\xC9\x14\x19\x7F<\xCBF\xBE)\0\xF4i\x8F\xD0\xEFt<\x96\x95` \x84\x01[\x83\x83\x10b\0\t\x12W`@Q\x80b\0\x03!\x87\x82b\0\x13\xB3V[`@Qb\0\t \x81b\0\x15\x04V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\t\xC1W\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\t\xAE\x94T\x91\x81\x81\x10b\0\x06\xCFW\x81\x81\x10b\0\x06\xB2W\x81\x81\x10b\0\x06\x95W\x81\x81\x10b\0\x06xW\x81\x81\x10b\0\x06[W\x81\x81\x10b\0\x06>W\x81\x81\x10b\0\x06#W\x10b\0\x06\x0EWP\x03\x82b\0\x15!V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x08\xFAV[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\tHV[P4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW` `@Qf\n\xA8{\xEES\x80\0\x81R\xF3[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`@Q`\x15\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7FU\xF4H\xFD\xEA\x98\xC4\xD2\x9E\xB3@u~\xF0\xA6l\xD0=\xBB\x958\x90\x8Aj\x81\xD9`&\xB7\x1E\xC4u\x92\x91[\x82\x82\x10b\0\n\xB9Wb\0\x03!\x85b\0\x03\x14\x81\x89\x03\x82b\0\x15!V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\n\x9EV[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`@Q`\x16\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xD83\x14}}\xC3U\xBAE\x9F\xC7\x88\xF6i\xE5\x8C\xFA\xF9\xDC%\xDD\xCD\x07\x02\xE8}i\xC7\xB5\x12B\x89\x92\x91[\x82\x82\x10b\0\x0B?Wb\0\x03!\x85b\0\x03\x14\x81\x89\x03\x82b\0\x15!V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x0B$V[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`\x1BT\x90b\0\x0B\x82\x82b\0\x15DV[b\0\x0B\x91`@Q\x91\x82b\0\x15!V[\x82\x81R` \x81\x01\x80\x93`\x1B\x84R\x7F:\xD8\xAAO\x87TC#\xA9\xD1\xE5\xDD\x90/@\xC3VRzyUhq\x13\xDB_\x9A\x85\xADW\x9D\xC1\x84\x92[\x82\x84\x10b\0\x0C\xB2W\x85\x85\x88`@Q\x91` \x83\x01\x90` \x84RQ\x80\x91R`@\x83\x01`\x05\x90`@\x83`\x05\x1B\x86\x01\x01\x93\x95\x80\x92[\x84\x84\x10b\0\x0C\x01W\x86\x86\x03\x87\xF3[\x90\x91\x92\x93\x94`?\x19\x87\x82\x03\x01\x84R\x87Q\x90` `@\x82\x01\x92`\x01\x80`\xA0\x1B\x03\x81Q\x16\x83R\x01Q\x91`@` \x83\x01R\x82Q\x80\x91R``\x90` \x82\x84\x01\x92\x82\x87\x1B\x85\x01\x01\x94\x01\x92\x86[\x82\x81\x10b\0\x0CmWPPPPP` \x80`\x01\x92\x99\x01\x94\x01\x94\x01\x92\x96\x94\x93\x91\x90b\0\x0B\xF3V[\x90\x91\x92\x93\x94` \x80\x80`\x01\x93`_\x19\x87\x82\x03\x01\x89R\x89Qb\0\x0C\x9B\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x13\x8EV[`\x1F\x01`\x1F\x19\x16\x01\x01\x97\x01\x95\x01\x93\x92\x91\x01b\0\x0CHV[`@Qb\0\x0C\xC0\x81b\0\x15\x04V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`\x01\x83\x01\x80T\x90b\0\x0C\xDF\x82b\0\x15DV[\x91b\0\x0C\xEF`@Q\x93\x84b\0\x15!V[\x80\x83R` \x83\x01\x91`\0R` `\0 `\0\x92[\x82\x84\x10b\0\r+WPPPP`\x01\x92\x82` \x92\x83`\x02\x95\x01R\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x0B\xC2V[`@Q`\0\x83T\x80`\x01\x1C\x90`\x01\x81\x16\x15b\0\x0E\x01W[` \x82\x10`\x01\x82\x16\x14b\0\r\xEDW\x81\x84R`\x01\x81\x16\x90\x81\x15b\0\r\xC9WP`\x01\x14b\0\r\x8EW[P`\x01\x92\x82b\0\r\x7F\x85\x94` \x94\x03\x82b\0\x15!V[\x81R\x01\x92\x01\x93\x01\x92\x90b\0\r\x03V[`\0\x85\x81R` \x81 \x90\x92P[\x81\x83\x10b\0\r\xB2WPP\x81\x01` \x01`\x01b\0\riV[`\x01\x81` \x92T\x83\x86\x88\x01\x01R\x01\x92\x01\x91b\0\r\x9BV[`\xFF\x19\x16` \x85\x81\x01\x91\x90\x91R\x91\x15\x15`\x05\x1B\x84\x01\x90\x91\x01\x91P`\x01\x90Pb\0\riV[cNH{q`\xE0\x1B\x83R`\"`\x04R`$\x83\xFD[\x90`\x7F\x16\x90b\0\rBV[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`@Q`\x14\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xCEm{R\x82\xBD\x9A6a\xAE\x06\x1F\xEE\xD1\xDB\xDANR\xAB\x07;\x1F\x92\x85\xBEn\x15]\x9C8\xD4\xEC\x92\x91[\x82\x82\x10b\0\x0EqWb\0\x03!\x85b\0\x03\x14\x81\x89\x03\x82b\0\x15!V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x0EVV[P4b\0\x12\xA7W\x80`\x03\x196\x01\x12b\0\x01VW`@Qa\x13\x01\x80\x82\x01\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x84\x10\x81\x85\x11\x17b\0\x12\x93Wb\0\x17'\x91\x83\x83\x829``\x85R`\x06``\x86\x01Re\x0E\x8D\xEDl\xAD\xCB`\xD3\x1B`\x80\x86\x01R`\xE0\x81` \x96`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`\x0B`\xFB\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x92\x83\x15b\0\x12tW`\x01\x80`\xA0\x1B\x03\x92\x83k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x95\x16\x85`\x1ET\x16\x17`\x1EU`@Q\x91\x80\x83\x01\x91\x83\x83\x10\x85\x84\x11\x17b\0\x12\x7FW\x91\x83\x91`\xE0\x93\x839``\x81R`\x06``\x82\x01RetokenY`\xD0\x1B`\x80\x82\x01R`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`Y`\xF8\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x80\x15b\0\x12tW\x82\x16\x83`\x1FT\x16\x17`\x1FU\x81`\x1ET\x16\x90\x81;\x15b\0\x02\xA9W`@Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0\x91\x88\x81`D\x81\x83`$\x99\x88\x8B\x84\x01RZ\xF1\x80\x15b\0\x11\xFFWb\0\x12^W[P\x84`\x1FT\x16\x90\x81;\x15b\0\x02\xA9W\x88\x92`D\x84\x92\x83`@Q\x95\x86\x94\x85\x93\x84R0`\x04\x85\x01R\x8A\x84\x01RZ\xF1\x80\x15b\0\x12SWb\0\x12;W[PP\x82`\x1ET\x16\x83`\x1FT\x16\x90`@Q\x91a\x07\xA1\x91\x82\x84\x01\x92\x84\x84\x10\x86\x85\x11\x17b\0\x12(W\x91``\x93\x91\x85\x93b\0ZQ\x859\x82R\x89\x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R\x03\x01\x90\x87\xF0\x80\x15b\0\x12\nW\x83\x16\x84`\x1DT\x16\x17`\x1DU`@Qa0)\x80\x82\x01\x90\x82\x82\x10\x84\x83\x11\x17b\0\x12\x15W\x90\x82\x91b\0*(\x839\x03\x90\x87\xF0\x80\x15b\0\x12\nW\x83\x16`\x1CT\x81\x86\x82\x16\x17`\x1CU\x84`\x1ET\x16\x91\x82;\x15b\0\x02\xA9W`@Q\x90\x89c\t^\xA7\xB3`\xE0\x1B\x93\x84\x84R\x16\x17`\x04\x82\x01R\x87\x81`D\x81\x8C`\0\x19\x97\x88\x8B\x84\x01RZ\xF1\x80\x15b\0\x11\xFFWb\0\x11\xDDW[P\x84`\x1FT\x16\x85`\x1CT\x16\x90\x80;\x15b\0\x02\xA9W\x88\x92\x8A`D\x92`@Q\x96\x87\x95\x86\x94\x85R`\x04\x85\x01R\x89\x84\x01RZ\xF1\x80\x15b\0\x11\xD2Wb\0\x11\x9EW[P\x82`\x1CT\x16`@Q\x92a\x08e\x90\x81\x85\x01\x93\x85\x85\x10\x90\x85\x11\x17b\0\x11\x8CWP\x91\x83\x91\x87\x93b\0a\xF2\x849\x81R\x03\x01\x90\x85\xF0\x80\x15b\0\x11\x81W\x16\x90\x82T\x16\x17\x90U\x80\xF3[`@Q=\x86\x82>=\x90\xFD[cNH{q`\xE0\x1B\x89R`A`\x04R\x88\xFD[b\0\x11\xC2\x90\x86=\x88\x11b\0\x11\xCAW[b\0\x11\xB9\x81\x83b\0\x15!V[\x81\x01\x90b\0\x15]V[P8b\0\x11>V[P=b\0\x11\xADV[`@Q=\x89\x82>=\x90\xFD[b\0\x11\xF7\x90\x88=\x8A\x11b\0\x11\xCAWb\0\x11\xB9\x81\x83b\0\x15!V[P8b\0\x11\x02V[`@Q=\x8B\x82>=\x90\xFD[`@Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x89R`A`\x04R\x84\x89\xFD[cNH{q`\xE0\x1B\x8BR`A`\x04R\x86\x8B\xFD[b\0\x12F\x90b\0\x14\xEFV[b\0\x01VW\x858b\0\x10*V[`@Q=\x84\x82>=\x90\xFD[b\0\x12l\x90\x98\x91\x98b\0\x14\xEFV[\x968b\0\x0F\xF1V[`@Q=\x87\x82>=\x90\xFD[cNH{q`\xE0\x1B\x89R`A`\x04R`$\x89\xFD[cNH{q`\xE0\x1B\x85R`A`\x04R`$\x85\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[` \x90` `@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10b\0\x13pWPPPP\x90V[\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01b\0\x13aV[`\0[\x83\x81\x10b\0\x13\xA2WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x13\x91V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01\x82`@\x85`\x05\x1B\x84\x01\x01\x96\x01\x94`\0\x80\x93[\x86\x85\x10b\0\x13\xEDWPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x80\x96\x97\x98`?\x19\x83\x82\x03\x01\x86R\x89Q\x82``\x81\x88\x85\x01\x93`\x01\x80`\xA0\x1B\x03\x81Q\x16\x86R\x01Q\x93\x88\x83\x82\x01R\x84Q\x80\x94R\x01\x92\x01\x90\x85\x90[\x80\x82\x10b\0\x14LWPPP\x90\x80`\x01\x92\x9A\x01\x95\x01\x95\x01\x93\x96\x95\x94\x92\x91\x90b\0\x13\xDAV[\x82Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x8A\x94\x93\x84\x01\x93\x90\x92\x01\x91`\x01\x91\x90\x91\x01\x90b\0\x14)V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x83\x01\x92\x81`@\x84`\x05\x1B\x83\x01\x01\x95\x01\x93`\0\x91[\x84\x83\x10b\0\x14\xA6WPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x84\x80\x80`\x01\x93`?\x19\x86\x82\x03\x01\x87R\x8AQb\0\x14\xD4\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x13\x8EV[`\x1F\x01`\x1F\x19\x16\x01\x01\x98\x01\x96\x95\x94\x91\x90\x91\x01\x92\x01\x90b\0\x14\x95V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02~W`@RV[`@\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02~W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02~W`@RV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02~W`\x05\x1B` \x01\x90V[\x90\x81` \x91\x03\x12b\0\x01VWQ\x80\x15\x15\x81\x03b\0\x15wW\x90V[`\0\x80\xFD[`\x07T`\x08\x1C`\xFF\x16\x15b\0\x15\x97W`\xFF`\x07T`\x08\x1C\x16\x90V[`\0sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0\x15\xB9WP\x90V[`@Q\x90` \x82\x01\x81\x81Re\x19\x98Z[\x19Y`\xD2\x1B`@\x84\x01R`@\x83R``\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x80\x82\x10\x85\x83\x11\x17b\0\x16\xAAW\x91\x85\x82b\0\x166`$\x83\x97\x95\x96\x84\x97`@R`\x80\x81\x01\x95c\x06g\xF9\xD7`\xE4\x1B\x87Rb\0\x16%\x82Q\x80\x92`\x84\x85\x01\x90b\0\x13\x8EV[\x81\x01\x03`\x04\x81\x01\x84R\x01\x82b\0\x15!V[Q\x92Z\xF1P=\x15b\0\x16\x9CW=\x90\x81\x11b\0\x16\x88W`@Qb\0\x16\x85\x92\x91b\0\x16j`\x1F\x82\x01`\x1F\x19\x16` \x01\x83b\0\x15!V[\x81R\x80\x91` =\x92\x01>[` \x80\x82Q\x83\x01\x01\x91\x01b\0\x15]V[\x90V[cNH{q`\xE0\x1B\x82R`A`\x04R`$\x82\xFD[PPb\0\x16\x85``b\0\x16uV[cNH{q`\xE0\x1B\x86R`A`\x04R`$\x86\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0\x15wWV\xFE`\xE0`@\x90\x80\x82R4b\0\x04\x99WPb\0\x13\x01\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xE6V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04JW\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04DW\x82b\0\0V\x91\x85\x01b\0\x05ZV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04DW\x83\x91b\0\0u\x91\x84\x01b\0\x05ZV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04?W\x84Q\x94\x86\x86\x11b\0\x04)W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06~V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xD8W[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03pW\x89\x92b\0\x03dW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03PW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06~V[\x82\x81\x11b\0\x02\xFBW[P\x87\x91\x83\x11`\x01\x14b\0\x02\x97W\x88\x92b\0\x02\x8BW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06~V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02kWPP`\x01\x14b\0\x02+W[Pb\0\x01m\x92P\x03\x82b\0\x04\xE6V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02\x17WP\x83\x90RQ\x90 `\xC0Ra\x0CE\x90\x81b\0\x06\xBC\x829`\x80Q\x81a\x06\x84\x01R`\xA0Q\x81a\nM\x01R`\xC0Q\x81a\nt\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02RWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x028V[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xE4WPP\x84\x11b\0\x02\xCAW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xBCV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xA9V[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03FW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x037WPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x03'V[\x92P\x81\x92b\0\x03\x18V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xC1WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xA7W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x99V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x7FV[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x04\x1FW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\x10WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x01V[\x92P\x81\x92b\0\x03\xF4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\nV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04)W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x06%W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04)W` \x90`@Q\x92b\0\x05\x95\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xE6V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xD0W`\0[\x81\x81\x10b\0\x05\xBCWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xA6V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xB0W[` \x83\x10\x14b\0\x06\x9AWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\x8EV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003`\xA0`@\x90\x80\x82R4b\0\x01[WP`\x01\x80U\x80Qa\x11D\x80\x82\x01\x91`\x01`\x01`@\x1B\x03\x91\x82\x84\x11\x82\x85\x10\x17b\0\x01EWb\0\x1E\xE5\x829\x80`\0\x93\x03\x90\x83\xF0\x80\x15b\0\x01;W`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81\x90R\x80;\x15b\0\0\xE9W\x90\x82\x80\x92`\x84\x86Q\x80\x96\x81\x93c&lE\xBB`\xE1\x1B\x83R\x89`\x04\x84\x01R\x81`D\x84\x01R```$\x84\x01R\x81`d\x84\x01RZ\xF1\x80\x15b\0\0\xDFWb\0\0\xB8W[\x83Qa\x1D<\x90\x81b\0\x01\xA9\x829`\x80Q\x81\x81\x81a\x0Bj\x01Ra\x10\x08\x01R\xF3[\x82\x11b\0\0\xCBWP\x81R8\x80\x80b\0\0\x99V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x84Q=\x84\x82>=\x90\xFD[\x83QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x83Q=\x84\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003`\x80`@\x90\x80\x82R4a\x01\x06WP\x80Q`\x1Fa\x07\xA18\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xF0W\x80\x84\x92``\x94\x87R\x839\x81\x01\x03\x12a\0\xA1Wa\0O\x81a\x01SV[\x90\x82a\0]` \x83\x01a\x01SV[\x91\x01Q\x91`\x01\x80`\xA0\x1B\x03\x19\x913\x83`\0T\x16\x17`\0U`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x83`\x01T\x16\x17`\x01U\x16\x90`\x02T\x16\x17`\x02U`\x03UQa\x064\x90\x81a\x01m\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x01gWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003`\xA0\x80`@R4a\0\xDCW`@Q`\x1Fa\x08e8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xC6W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0vWQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0qW`\x80R`@Qa\x07;\x90\x81a\x01*\x829`\x80Q\x81a\x01B\x01R\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80b.RK\x14a\x03\x9FW\x80ch\xBD>8\x14a\x03eW\x80cs\xCB-\x03\x14a\x02\x9AW\x80c\x8A\x04\xBD\xD5\x14a\x01\x87W\x80c\xAC\xAD)\x89\x14a\x01qW\x80c\xAF\xBA\x13\xC4\x14a\x01/Wc\xDC\x17\x83U\x14a\0\xCAWPa\0\x11V[\x904a\x01*W` \x80`\x03\x196\x01\x12a\x01%W\x91\x81Q\x92\x83\x91` \x83R``Q\x91\x82` \x85\x01R\x81[\x83\x81\x10a\x01\x10WPP\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x81\x01\x03\x01\x90\xF3[`\x80\x81\x01Q\x87\x82\x01\x87\x01R\x86\x94P\x81\x01a\0\xF3V[a\x04\xF3V[a\x04\xA3V[P4a\x01*W6`\x03\x19\x01\x12a\x01%WQ\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[P4a\x01*Wa\x01\x806a\x05\xECV[PPPP\x80\xF3[P4a\x01*Wa\x01\x966a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x03a\x02\x10WPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x02\xB5\xE3\xAF\x16\xB1\x88\0\0\x80gEc\x91\x82D\xF4\0\0\x92[Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[\x03\x90\xF3[`\t\x81\x03a\x02QWPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x05k\xC7^-c\x10\0\0h\x06\x81U\xA46v\xE0\0\0\x90g\x8A\xC7#\x04\x89\xE8\0\0\x92a\x01\xE1V[`\x08\x14a\x02dW[a\x02\x0C\x93\x94\x95a\x01\xE1V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90Ph\x06\x81U\xA46v\xE0\0\0a\x02YV[P4a\x01*Wa\x02\xA96a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x14a\x030W[`\x02\x14a\x03\x03W[a\x02\x0C\x93\x94\x95Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90P\x80a\x02\xD2V[g\r\xE0\xB6\xB3\xA7d\0\0\x95P`\x01\x94Pg7\x82\xDA\xCE\x9D\x90\0\0\x93Pg)\xA2$\x1A\xF6,\0\0\x92Pg\x1B\xC1mgN\xC8\0\0\x91Pa\x02\xCAV[P\x904a\x01*W`\xC0\x91a\x03x6a\x05\xECV[PPPP\x80\x82Q\x92\x81\x84R\x81` \x85\x01R\x83\x01R\x80``\x83\x01R\x80`\x80\x83\x01R`\xA0\x82\x01R\xF3[P\x904a\x04\xA3W\x80`\x03\x196\x01\x12a\x01%Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92`$\x805\x85\x81\x11a\x04\x9EW6`#\x82\x01\x12\x15a\x04\x99W\x80\x83\x015\x92\x86\x84\x11a\x04\x87W\x84Q\x96`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x88\x01\x90\x81\x11\x88\x82\x10\x17a\x04uW\x85R\x83\x87R6\x83\x85\x84\x01\x01\x11a\x04#WP\x91` \x95\x81\x87\x93\x87\x95\x01\x84\x83\x017\x01\x01RQ\x90\x81R\xF3[`\x84\x90`'\x84` \x88Q\x93bF\x1B\xCD`\xE5\x1B\x85R\x84\x01R\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R\xFD[cNH{q`\xE0\x1B\x87R`A\x82R\x83\x87\xFD[cNH{q`\xE0\x1B\x86R`A\x90R\x81\x85\xFD[a\x05\x93V[a\x05CV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90```\x03\x19\x83\x01\x12a\x01%W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\x07\0W\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x04\x9EW\x80`#\x83\x01\x12\x15a\x04\x99W\x81`\x04\x015\x93\x84\x11a\x06\xA7W`$\x84\x83\x01\x01\x11a\x06NW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xC5J`\xF7\x11\xAC\x0C\xBD\xFD;\x8F\x93\x12\xBC\xD0<\xA0^\x14(\x07\x91\xB2\xA1@\x9F\xF4\x9D\xE4'\xD7\xB2dsolcC\0\x08\x16\x003\xA2dipfsX\"\x12 \xB4\xD8\xE4\xE4\xF9\x87\x07\x90(\xB4\xA5\xD2\xA1\xC0\x89N\xB4\x042c\xCC\xC11Sb>\xD6B\xEB\x94\x9DpdsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static DFMMSETUP_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10\x15b\0\0rW[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x805`\xE0\x1C\x80c\n\x92T\xE4\x14b\0\x0E\x92W\x80c\x1E\xD7\x83\x1C\x14b\0\x0E\x0CW\x80c*\xDE8\x80\x14b\0\x0B`W\x80c>^<#\x14b\0\n\xDAW\x80c?r\x86\xF4\x14b\0\nTW\x80cb\n&\x07\x14b\0\n1W\x80cf\xD9\xA9\xA0\x14b\0\x08\x9BW\x80c\x85\"l\x81\x14b\0\x07\\W\x80c\x91j\x17\xC6\x14b\0\x04\xE0W\x80c\xB5P\x8A\xA9\x14b\0\x03\x8DW\x80c\xBAAO\xA6\x14b\0\x03eW\x80c\xE0\xD7\xD0\xE9\x14b\0\x03FW\x80c\xE2\x0C\x9Fq\x14b\0\x02\xAFW\x80c\xE2\x14\x85\xAD\x14b\0\x01bWc\xFAv&\xD4\x14b\0\x013WPb\0\0\x0FV[4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW` `\xFF`\x07T\x16`@Q\x90\x15\x15\x81R\xF3[b\0\x12\xF7V[b\0\x12\xA7V[P4b\0\x01\\W` 6`\x03\x19\x01\x12b\0\x01VW`\x1CT`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x80;\x15b\0\x02\xA9W`\xE0`$\x91`@Q\x92\x83\x80\x92c\x06\x8B\xCD\x8D\x85\x1B\x82R`\x045`\x04\x83\x01RZ\xFA\x92\x83\x15b\0\x02\x9DW\x92b\0\x01\xCBW[P`\xC0` \x92\x01Q\x16`@Q\x90\x81R\xF3[\x91P`\xE0\x82=`\xE0\x11b\0\x02\x94W[\x81b\0\x01\xE9`\xE0\x93\x83b\0\x15!V[\x81\x01\x03\x12b\0\x01VW`@Q`\xE0\x81\x01\x90\x80\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17b\0\x02~Wb\0\x02r`\xC0` \x95\x81\x94`@Rb\0\x02'\x81b\0\x17\x11V[\x84Rb\0\x026\x87\x82\x01b\0\x17\x11V[\x87\x85\x01Rb\0\x02H`@\x82\x01b\0\x17\x11V[`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01b\0\x17\x11V[\x82\x82\x01R\x92Pb\0\x01\xBAV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[=\x91Pb\0\x01\xDAV[`@Q\x90=\x90\x82>=\x90\xFD[b\0\x16\xBEV[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`@Q`\x13\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90\x92\x91[\x82\x82\x10b\0\x03%Wb\0\x03!\x85b\0\x03\x14\x81\x89\x03\x82b\0\x15!V[`@Q\x91\x82\x91\x82b\0\x13GV[\x03\x90\xF3[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x02\xF9V[P4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW` `!T`@Q\x90\x81R\xF3[P4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW` b\0\x03\x83b\0\x15|V[`@Q\x90\x15\x15\x81R\xF3[P4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW`\x17Tb\0\x03\xAD\x81b\0\x15DV[b\0\x03\xBC`@Q\x91\x82b\0\x15!V[\x81\x81R` \x91\x82\x82\x01`\x17`\0R\x7F\xC6$\xB6l\xC0\x13\x8B\x8F\xAB\xC2\t$\x7Fr\xD7X\xE1\xCF3CumT;\xAD\xBF$!+\xED\x8C\x15\x90`\0\x90[\x83\x82\x10b\0\x04\x08W`@Q\x80b\0\x03!\x87\x82b\0\x14qV[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x04\xD5W[\x8B\x83\x10\x81\x14b\0\x04\xC1W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x04\xA3WP`\x01\x14b\0\x04fW[Pb\0\x04W\x81`\x01\x96\x03\x82b\0\x15!V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x03\xF0V[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x04\x8BWP\x81\x01\x83\x01\x94Pb\0\x04Wb\0\x04FV[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x04rV[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x04Wb\0\x04FV[cNH{q`\xE0\x1B\x87R`\"`\x04R`$\x87\xFD[\x91`\x7F\x16\x91b\0\x04#V[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`\x1ATb\0\x05\x01\x81b\0\x15DV[\x90b\0\x05\x11`@Q\x92\x83b\0\x15!V[\x80\x82R`\x1A\x83R\x82\x7F\x05|8J}\x1CT\xF3\xA1\xB2\xE5\xE6{&\x17\xB8\"O\xDF\xD1\xEAr4\xEE\xA5s\xA6\xFFf_\xF6>` \x84\x01[\x83\x83\x10b\0\x05WW`@Q\x80b\0\x03!\x87\x82b\0\x13\xB3V[`@Qb\0\x05e\x81b\0\x15\x04V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\x06\xECW\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\x05\xFB\x94T\x91\x81\x81\x10b\0\x06\xCFW[\x81\x81\x10b\0\x06\xB2W[\x81\x81\x10b\0\x06\x95W[\x81\x81\x10b\0\x06xW[\x81\x81\x10b\0\x06[W[\x81\x81\x10b\0\x06>W[\x81\x81\x10b\0\x06#W[\x10b\0\x06\x0EW[P\x03\x82b\0\x15!V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x05?V[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x86\x018b\0\x05\xF2V[\x82\x8A\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xEBV[`@\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xE2V[``\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xD9V[`\x80\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xD0V[`\xA0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xC7V[`\xC0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xBEV[`\xE0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xB5V[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\x05\x8DV[P4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW`\x18Tb\0\x07|\x81b\0\x15DV[b\0\x07\x8B`@Q\x91\x82b\0\x15!V[\x81\x81R` \x91\x82\x82\x01`\x18`\0R\x7F\xB1=-v\xD1\xF4\xB7\xBE\x83H\x82\xE4\x10\xB3\xE3\xA8\xAF\xAFi\xF86\0\xAE$\xDB5C\x91\xD27\x8D.\x90`\0\x90[\x83\x82\x10b\0\x07\xD7W`@Q\x80b\0\x03!\x87\x82b\0\x14qV[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x08\x90W[\x8B\x83\x10\x81\x14b\0\x04\xC1W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x08rWP`\x01\x14b\0\x085W[Pb\0\x08&\x81`\x01\x96\x03\x82b\0\x15!V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x07\xBFV[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x08ZWP\x81\x01\x83\x01\x94Pb\0\x08&b\0\x08\x15V[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x08AV[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x08&b\0\x08\x15V[\x91`\x7F\x16\x91b\0\x07\xF2V[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`\x19Tb\0\x08\xBC\x81b\0\x15DV[\x90b\0\x08\xCC`@Q\x92\x83b\0\x15!V[\x80\x82R`\x19\x83R\x82\x7F\x94I\x98'>G{IQD\xFB\x87\x94\xC9\x14\x19\x7F<\xCBF\xBE)\0\xF4i\x8F\xD0\xEFt<\x96\x95` \x84\x01[\x83\x83\x10b\0\t\x12W`@Q\x80b\0\x03!\x87\x82b\0\x13\xB3V[`@Qb\0\t \x81b\0\x15\x04V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\t\xC1W\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\t\xAE\x94T\x91\x81\x81\x10b\0\x06\xCFW\x81\x81\x10b\0\x06\xB2W\x81\x81\x10b\0\x06\x95W\x81\x81\x10b\0\x06xW\x81\x81\x10b\0\x06[W\x81\x81\x10b\0\x06>W\x81\x81\x10b\0\x06#W\x10b\0\x06\x0EWP\x03\x82b\0\x15!V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x08\xFAV[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\tHV[P4b\0\x01\\W6`\x03\x19\x01\x12b\0\x01VW` `@Qf\n\xA8{\xEES\x80\0\x81R\xF3[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`@Q`\x15\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7FU\xF4H\xFD\xEA\x98\xC4\xD2\x9E\xB3@u~\xF0\xA6l\xD0=\xBB\x958\x90\x8Aj\x81\xD9`&\xB7\x1E\xC4u\x92\x91[\x82\x82\x10b\0\n\xB9Wb\0\x03!\x85b\0\x03\x14\x81\x89\x03\x82b\0\x15!V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\n\x9EV[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`@Q`\x16\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xD83\x14}}\xC3U\xBAE\x9F\xC7\x88\xF6i\xE5\x8C\xFA\xF9\xDC%\xDD\xCD\x07\x02\xE8}i\xC7\xB5\x12B\x89\x92\x91[\x82\x82\x10b\0\x0B?Wb\0\x03!\x85b\0\x03\x14\x81\x89\x03\x82b\0\x15!V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x0B$V[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`\x1BT\x90b\0\x0B\x82\x82b\0\x15DV[b\0\x0B\x91`@Q\x91\x82b\0\x15!V[\x82\x81R` \x81\x01\x80\x93`\x1B\x84R\x7F:\xD8\xAAO\x87TC#\xA9\xD1\xE5\xDD\x90/@\xC3VRzyUhq\x13\xDB_\x9A\x85\xADW\x9D\xC1\x84\x92[\x82\x84\x10b\0\x0C\xB2W\x85\x85\x88`@Q\x91` \x83\x01\x90` \x84RQ\x80\x91R`@\x83\x01`\x05\x90`@\x83`\x05\x1B\x86\x01\x01\x93\x95\x80\x92[\x84\x84\x10b\0\x0C\x01W\x86\x86\x03\x87\xF3[\x90\x91\x92\x93\x94`?\x19\x87\x82\x03\x01\x84R\x87Q\x90` `@\x82\x01\x92`\x01\x80`\xA0\x1B\x03\x81Q\x16\x83R\x01Q\x91`@` \x83\x01R\x82Q\x80\x91R``\x90` \x82\x84\x01\x92\x82\x87\x1B\x85\x01\x01\x94\x01\x92\x86[\x82\x81\x10b\0\x0CmWPPPPP` \x80`\x01\x92\x99\x01\x94\x01\x94\x01\x92\x96\x94\x93\x91\x90b\0\x0B\xF3V[\x90\x91\x92\x93\x94` \x80\x80`\x01\x93`_\x19\x87\x82\x03\x01\x89R\x89Qb\0\x0C\x9B\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x13\x8EV[`\x1F\x01`\x1F\x19\x16\x01\x01\x97\x01\x95\x01\x93\x92\x91\x01b\0\x0CHV[`@Qb\0\x0C\xC0\x81b\0\x15\x04V[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`\x01\x83\x01\x80T\x90b\0\x0C\xDF\x82b\0\x15DV[\x91b\0\x0C\xEF`@Q\x93\x84b\0\x15!V[\x80\x83R` \x83\x01\x91`\0R` `\0 `\0\x92[\x82\x84\x10b\0\r+WPPPP`\x01\x92\x82` \x92\x83`\x02\x95\x01R\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x0B\xC2V[`@Q`\0\x83T\x80`\x01\x1C\x90`\x01\x81\x16\x15b\0\x0E\x01W[` \x82\x10`\x01\x82\x16\x14b\0\r\xEDW\x81\x84R`\x01\x81\x16\x90\x81\x15b\0\r\xC9WP`\x01\x14b\0\r\x8EW[P`\x01\x92\x82b\0\r\x7F\x85\x94` \x94\x03\x82b\0\x15!V[\x81R\x01\x92\x01\x93\x01\x92\x90b\0\r\x03V[`\0\x85\x81R` \x81 \x90\x92P[\x81\x83\x10b\0\r\xB2WPP\x81\x01` \x01`\x01b\0\riV[`\x01\x81` \x92T\x83\x86\x88\x01\x01R\x01\x92\x01\x91b\0\r\x9BV[`\xFF\x19\x16` \x85\x81\x01\x91\x90\x91R\x91\x15\x15`\x05\x1B\x84\x01\x90\x91\x01\x91P`\x01\x90Pb\0\riV[cNH{q`\xE0\x1B\x83R`\"`\x04R`$\x83\xFD[\x90`\x7F\x16\x90b\0\rBV[P4b\0\x01\\W\x80`\x03\x196\x01\x12b\0\x01VW`@Q`\x14\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xCEm{R\x82\xBD\x9A6a\xAE\x06\x1F\xEE\xD1\xDB\xDANR\xAB\x07;\x1F\x92\x85\xBEn\x15]\x9C8\xD4\xEC\x92\x91[\x82\x82\x10b\0\x0EqWb\0\x03!\x85b\0\x03\x14\x81\x89\x03\x82b\0\x15!V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x0EVV[P4b\0\x12\xA7W\x80`\x03\x196\x01\x12b\0\x01VW`@Qa\x13\x01\x80\x82\x01\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x84\x10\x81\x85\x11\x17b\0\x12\x93Wb\0\x17'\x91\x83\x83\x829``\x85R`\x06``\x86\x01Re\x0E\x8D\xEDl\xAD\xCB`\xD3\x1B`\x80\x86\x01R`\xE0\x81` \x96`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`\x0B`\xFB\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x92\x83\x15b\0\x12tW`\x01\x80`\xA0\x1B\x03\x92\x83k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x95\x16\x85`\x1ET\x16\x17`\x1EU`@Q\x91\x80\x83\x01\x91\x83\x83\x10\x85\x84\x11\x17b\0\x12\x7FW\x91\x83\x91`\xE0\x93\x839``\x81R`\x06``\x82\x01RetokenY`\xD0\x1B`\x80\x82\x01R`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`Y`\xF8\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x80\x15b\0\x12tW\x82\x16\x83`\x1FT\x16\x17`\x1FU\x81`\x1ET\x16\x90\x81;\x15b\0\x02\xA9W`@Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0\x91\x88\x81`D\x81\x83`$\x99\x88\x8B\x84\x01RZ\xF1\x80\x15b\0\x11\xFFWb\0\x12^W[P\x84`\x1FT\x16\x90\x81;\x15b\0\x02\xA9W\x88\x92`D\x84\x92\x83`@Q\x95\x86\x94\x85\x93\x84R0`\x04\x85\x01R\x8A\x84\x01RZ\xF1\x80\x15b\0\x12SWb\0\x12;W[PP\x82`\x1ET\x16\x83`\x1FT\x16\x90`@Q\x91a\x07\xA1\x91\x82\x84\x01\x92\x84\x84\x10\x86\x85\x11\x17b\0\x12(W\x91``\x93\x91\x85\x93b\0ZQ\x859\x82R\x89\x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R\x03\x01\x90\x87\xF0\x80\x15b\0\x12\nW\x83\x16\x84`\x1DT\x16\x17`\x1DU`@Qa0)\x80\x82\x01\x90\x82\x82\x10\x84\x83\x11\x17b\0\x12\x15W\x90\x82\x91b\0*(\x839\x03\x90\x87\xF0\x80\x15b\0\x12\nW\x83\x16`\x1CT\x81\x86\x82\x16\x17`\x1CU\x84`\x1ET\x16\x91\x82;\x15b\0\x02\xA9W`@Q\x90\x89c\t^\xA7\xB3`\xE0\x1B\x93\x84\x84R\x16\x17`\x04\x82\x01R\x87\x81`D\x81\x8C`\0\x19\x97\x88\x8B\x84\x01RZ\xF1\x80\x15b\0\x11\xFFWb\0\x11\xDDW[P\x84`\x1FT\x16\x85`\x1CT\x16\x90\x80;\x15b\0\x02\xA9W\x88\x92\x8A`D\x92`@Q\x96\x87\x95\x86\x94\x85R`\x04\x85\x01R\x89\x84\x01RZ\xF1\x80\x15b\0\x11\xD2Wb\0\x11\x9EW[P\x82`\x1CT\x16`@Q\x92a\x08e\x90\x81\x85\x01\x93\x85\x85\x10\x90\x85\x11\x17b\0\x11\x8CWP\x91\x83\x91\x87\x93b\0a\xF2\x849\x81R\x03\x01\x90\x85\xF0\x80\x15b\0\x11\x81W\x16\x90\x82T\x16\x17\x90U\x80\xF3[`@Q=\x86\x82>=\x90\xFD[cNH{q`\xE0\x1B\x89R`A`\x04R\x88\xFD[b\0\x11\xC2\x90\x86=\x88\x11b\0\x11\xCAW[b\0\x11\xB9\x81\x83b\0\x15!V[\x81\x01\x90b\0\x15]V[P8b\0\x11>V[P=b\0\x11\xADV[`@Q=\x89\x82>=\x90\xFD[b\0\x11\xF7\x90\x88=\x8A\x11b\0\x11\xCAWb\0\x11\xB9\x81\x83b\0\x15!V[P8b\0\x11\x02V[`@Q=\x8B\x82>=\x90\xFD[`@Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x89R`A`\x04R\x84\x89\xFD[cNH{q`\xE0\x1B\x8BR`A`\x04R\x86\x8B\xFD[b\0\x12F\x90b\0\x14\xEFV[b\0\x01VW\x858b\0\x10*V[`@Q=\x84\x82>=\x90\xFD[b\0\x12l\x90\x98\x91\x98b\0\x14\xEFV[\x968b\0\x0F\xF1V[`@Q=\x87\x82>=\x90\xFD[cNH{q`\xE0\x1B\x89R`A`\x04R`$\x89\xFD[cNH{q`\xE0\x1B\x85R`A`\x04R`$\x85\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[` \x90` `@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10b\0\x13pWPPPP\x90V[\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01b\0\x13aV[`\0[\x83\x81\x10b\0\x13\xA2WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x13\x91V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01\x82`@\x85`\x05\x1B\x84\x01\x01\x96\x01\x94`\0\x80\x93[\x86\x85\x10b\0\x13\xEDWPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x80\x96\x97\x98`?\x19\x83\x82\x03\x01\x86R\x89Q\x82``\x81\x88\x85\x01\x93`\x01\x80`\xA0\x1B\x03\x81Q\x16\x86R\x01Q\x93\x88\x83\x82\x01R\x84Q\x80\x94R\x01\x92\x01\x90\x85\x90[\x80\x82\x10b\0\x14LWPPP\x90\x80`\x01\x92\x9A\x01\x95\x01\x95\x01\x93\x96\x95\x94\x92\x91\x90b\0\x13\xDAV[\x82Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x8A\x94\x93\x84\x01\x93\x90\x92\x01\x91`\x01\x91\x90\x91\x01\x90b\0\x14)V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x83\x01\x92\x81`@\x84`\x05\x1B\x83\x01\x01\x95\x01\x93`\0\x91[\x84\x83\x10b\0\x14\xA6WPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x84\x80\x80`\x01\x93`?\x19\x86\x82\x03\x01\x87R\x8AQb\0\x14\xD4\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x13\x8EV[`\x1F\x01`\x1F\x19\x16\x01\x01\x98\x01\x96\x95\x94\x91\x90\x91\x01\x92\x01\x90b\0\x14\x95V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02~W`@RV[`@\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02~W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02~W`@RV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02~W`\x05\x1B` \x01\x90V[\x90\x81` \x91\x03\x12b\0\x01VWQ\x80\x15\x15\x81\x03b\0\x15wW\x90V[`\0\x80\xFD[`\x07T`\x08\x1C`\xFF\x16\x15b\0\x15\x97W`\xFF`\x07T`\x08\x1C\x16\x90V[`\0sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0\x15\xB9WP\x90V[`@Q\x90` \x82\x01\x81\x81Re\x19\x98Z[\x19Y`\xD2\x1B`@\x84\x01R`@\x83R``\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x80\x82\x10\x85\x83\x11\x17b\0\x16\xAAW\x91\x85\x82b\0\x166`$\x83\x97\x95\x96\x84\x97`@R`\x80\x81\x01\x95c\x06g\xF9\xD7`\xE4\x1B\x87Rb\0\x16%\x82Q\x80\x92`\x84\x85\x01\x90b\0\x13\x8EV[\x81\x01\x03`\x04\x81\x01\x84R\x01\x82b\0\x15!V[Q\x92Z\xF1P=\x15b\0\x16\x9CW=\x90\x81\x11b\0\x16\x88W`@Qb\0\x16\x85\x92\x91b\0\x16j`\x1F\x82\x01`\x1F\x19\x16` \x01\x83b\0\x15!V[\x81R\x80\x91` =\x92\x01>[` \x80\x82Q\x83\x01\x01\x91\x01b\0\x15]V[\x90V[cNH{q`\xE0\x1B\x82R`A`\x04R`$\x82\xFD[PPb\0\x16\x85``b\0\x16uV[cNH{q`\xE0\x1B\x86R`A`\x04R`$\x86\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0\x15wWV\xFE`\xE0`@\x90\x80\x82R4b\0\x04\x99WPb\0\x13\x01\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xE6V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04JW\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04DW\x82b\0\0V\x91\x85\x01b\0\x05ZV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04DW\x83\x91b\0\0u\x91\x84\x01b\0\x05ZV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04?W\x84Q\x94\x86\x86\x11b\0\x04)W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06~V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xD8W[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03pW\x89\x92b\0\x03dW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03PW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06~V[\x82\x81\x11b\0\x02\xFBW[P\x87\x91\x83\x11`\x01\x14b\0\x02\x97W\x88\x92b\0\x02\x8BW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06~V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02kWPP`\x01\x14b\0\x02+W[Pb\0\x01m\x92P\x03\x82b\0\x04\xE6V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02\x17WP\x83\x90RQ\x90 `\xC0Ra\x0CE\x90\x81b\0\x06\xBC\x829`\x80Q\x81a\x06\x84\x01R`\xA0Q\x81a\nM\x01R`\xC0Q\x81a\nt\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02RWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x028V[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xE4WPP\x84\x11b\0\x02\xCAW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xBCV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xA9V[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03FW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x037WPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x03'V[\x92P\x81\x92b\0\x03\x18V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xC1WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xA7W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x99V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x7FV[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x04\x1FW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\x10WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x01V[\x92P\x81\x92b\0\x03\xF4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\nV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04)W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x06%W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04)W` \x90`@Q\x92b\0\x05\x95\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xE6V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xD0W`\0[\x81\x81\x10b\0\x05\xBCWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xA6V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xB0W[` \x83\x10\x14b\0\x06\x9AWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\x8EV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003`\xA0`@\x90\x80\x82R4b\0\x01[WP`\x01\x80U\x80Qa\x11D\x80\x82\x01\x91`\x01`\x01`@\x1B\x03\x91\x82\x84\x11\x82\x85\x10\x17b\0\x01EWb\0\x1E\xE5\x829\x80`\0\x93\x03\x90\x83\xF0\x80\x15b\0\x01;W`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81\x90R\x80;\x15b\0\0\xE9W\x90\x82\x80\x92`\x84\x86Q\x80\x96\x81\x93c&lE\xBB`\xE1\x1B\x83R\x89`\x04\x84\x01R\x81`D\x84\x01R```$\x84\x01R\x81`d\x84\x01RZ\xF1\x80\x15b\0\0\xDFWb\0\0\xB8W[\x83Qa\x1D<\x90\x81b\0\x01\xA9\x829`\x80Q\x81\x81\x81a\x0Bj\x01Ra\x10\x08\x01R\xF3[\x82\x11b\0\0\xCBWP\x81R8\x80\x80b\0\0\x99V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x84Q=\x84\x82>=\x90\xFD[\x83QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x83Q=\x84\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003`\x80`@\x90\x80\x82R4a\x01\x06WP\x80Q`\x1Fa\x07\xA18\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xF0W\x80\x84\x92``\x94\x87R\x839\x81\x01\x03\x12a\0\xA1Wa\0O\x81a\x01SV[\x90\x82a\0]` \x83\x01a\x01SV[\x91\x01Q\x91`\x01\x80`\xA0\x1B\x03\x19\x913\x83`\0T\x16\x17`\0U`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x83`\x01T\x16\x17`\x01U\x16\x90`\x02T\x16\x17`\x02U`\x03UQa\x064\x90\x81a\x01m\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x01gWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003`\xA0\x80`@R4a\0\xDCW`@Q`\x1Fa\x08e8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xC6W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0vWQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0qW`\x80R`@Qa\x07;\x90\x81a\x01*\x829`\x80Q\x81a\x01B\x01R\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80b.RK\x14a\x03\x9FW\x80ch\xBD>8\x14a\x03eW\x80cs\xCB-\x03\x14a\x02\x9AW\x80c\x8A\x04\xBD\xD5\x14a\x01\x87W\x80c\xAC\xAD)\x89\x14a\x01qW\x80c\xAF\xBA\x13\xC4\x14a\x01/Wc\xDC\x17\x83U\x14a\0\xCAWPa\0\x11V[\x904a\x01*W` \x80`\x03\x196\x01\x12a\x01%W\x91\x81Q\x92\x83\x91` \x83R``Q\x91\x82` \x85\x01R\x81[\x83\x81\x10a\x01\x10WPP\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x81\x01\x03\x01\x90\xF3[`\x80\x81\x01Q\x87\x82\x01\x87\x01R\x86\x94P\x81\x01a\0\xF3V[a\x04\xF3V[a\x04\xA3V[P4a\x01*W6`\x03\x19\x01\x12a\x01%WQ\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[P4a\x01*Wa\x01\x806a\x05\xECV[PPPP\x80\xF3[P4a\x01*Wa\x01\x966a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x03a\x02\x10WPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x02\xB5\xE3\xAF\x16\xB1\x88\0\0\x80gEc\x91\x82D\xF4\0\0\x92[Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[\x03\x90\xF3[`\t\x81\x03a\x02QWPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x05k\xC7^-c\x10\0\0h\x06\x81U\xA46v\xE0\0\0\x90g\x8A\xC7#\x04\x89\xE8\0\0\x92a\x01\xE1V[`\x08\x14a\x02dW[a\x02\x0C\x93\x94\x95a\x01\xE1V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90Ph\x06\x81U\xA46v\xE0\0\0a\x02YV[P4a\x01*Wa\x02\xA96a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x14a\x030W[`\x02\x14a\x03\x03W[a\x02\x0C\x93\x94\x95Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90P\x80a\x02\xD2V[g\r\xE0\xB6\xB3\xA7d\0\0\x95P`\x01\x94Pg7\x82\xDA\xCE\x9D\x90\0\0\x93Pg)\xA2$\x1A\xF6,\0\0\x92Pg\x1B\xC1mgN\xC8\0\0\x91Pa\x02\xCAV[P\x904a\x01*W`\xC0\x91a\x03x6a\x05\xECV[PPPP\x80\x82Q\x92\x81\x84R\x81` \x85\x01R\x83\x01R\x80``\x83\x01R\x80`\x80\x83\x01R`\xA0\x82\x01R\xF3[P\x904a\x04\xA3W\x80`\x03\x196\x01\x12a\x01%Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92`$\x805\x85\x81\x11a\x04\x9EW6`#\x82\x01\x12\x15a\x04\x99W\x80\x83\x015\x92\x86\x84\x11a\x04\x87W\x84Q\x96`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x88\x01\x90\x81\x11\x88\x82\x10\x17a\x04uW\x85R\x83\x87R6\x83\x85\x84\x01\x01\x11a\x04#WP\x91` \x95\x81\x87\x93\x87\x95\x01\x84\x83\x017\x01\x01RQ\x90\x81R\xF3[`\x84\x90`'\x84` \x88Q\x93bF\x1B\xCD`\xE5\x1B\x85R\x84\x01R\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R\xFD[cNH{q`\xE0\x1B\x87R`A\x82R\x83\x87\xFD[cNH{q`\xE0\x1B\x86R`A\x90R\x81\x85\xFD[a\x05\x93V[a\x05CV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90```\x03\x19\x83\x01\x12a\x01%W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\x07\0W\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x04\x9EW\x80`#\x83\x01\x12\x15a\x04\x99W\x81`\x04\x015\x93\x84\x11a\x06\xA7W`$\x84\x83\x01\x01\x11a\x06NW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xC5J`\xF7\x11\xAC\x0C\xBD\xFD;\x8F\x93\x12\xBC\xD0<\xA0^\x14(\x07\x91\xB2\xA1@\x9F\xF4\x9D\xE4'\xD7\xB2dsolcC\0\x08\x16\x003\xA2dipfsX\"\x12 \xB4\xD8\xE4\xE4\xF9\x87\x07\x90(\xB4\xA5\xD2\xA1\xC0\x89N\xB4\x042c\xCC\xC11Sb>\xD6B\xEB\x94\x9DpdsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static DFMMSETUP_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct DFMMSetUp(::ethers::contract::Contract); - impl ::core::clone::Clone for DFMMSetUp { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for DFMMSetUp { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for DFMMSetUp { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for DFMMSetUp { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(DFMMSetUp)).field(&self.address()).finish() - } - } - impl DFMMSetUp { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - DFMMSETUP_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - DFMMSETUP_ABI.clone(), - DFMMSETUP_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `IS_TEST` (0xfa7626d4) function - pub fn is_test(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([250, 118, 38, 212], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `POOL_ID` (0xe0d7d0e9) function - pub fn pool_id( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([224, 215, 208, 233], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `TEST_SWAP_FEE` (0x620a2607) function - pub fn test_swap_fee( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([98, 10, 38, 7], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeArtifacts` (0xb5508aa9) function - pub fn exclude_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([181, 80, 138, 169], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeContracts` (0xe20c9f71) function - pub fn exclude_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([226, 12, 159, 113], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeSenders` (0x1ed7831c) function - pub fn exclude_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([30, 215, 131, 28], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `failed` (0xba414fa6) function - pub fn failed(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([186, 65, 79, 166], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolLiquidityToken` (0xe21485ad) function - pub fn get_pool_liquidity_token( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([226, 20, 133, 173], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setUp` (0x0a9254e4) function - pub fn set_up(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([10, 146, 84, 228], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifactSelectors` (0x66d9a9a0) function - pub fn target_artifact_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([102, 217, 169, 160], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifacts` (0x85226c81) function - pub fn target_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([133, 34, 108, 129], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetContracts` (0x3f7286f4) function - pub fn target_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([63, 114, 134, 244], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetInterfaces` (0x2ade3880) function - pub fn target_interfaces( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([42, 222, 56, 128], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSelectors` (0x916a17c6) function - pub fn target_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([145, 106, 23, 198], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSenders` (0x3e5e3c23) function - pub fn target_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([62, 94, 60, 35], ()) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `log` event - pub fn log_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogFilter> { - self.0.event() - } - ///Gets the contract's `log_address` event - pub fn log_address_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogAddressFilter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_1_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray1Filter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_2_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray2Filter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_3_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray3Filter, - > { - self.0.event() - } - ///Gets the contract's `log_bytes` event - pub fn log_bytes_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogBytesFilter, - > { - self.0.event() - } - ///Gets the contract's `log_bytes32` event - pub fn log_bytes_32_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogBytes32Filter, - > { - self.0.event() - } - ///Gets the contract's `log_int` event - pub fn log_int_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogIntFilter> { - self.0.event() - } - ///Gets the contract's `log_named_address` event - pub fn log_named_address_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedAddressFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_1_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray1Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_2_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray2Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_3_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray3Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_bytes` event - pub fn log_named_bytes_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedBytesFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_bytes32` event - pub fn log_named_bytes_32_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedBytes32Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_decimal_int` event - pub fn log_named_decimal_int_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedDecimalIntFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_decimal_uint` event - pub fn log_named_decimal_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedDecimalUintFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_int` event - pub fn log_named_int_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedIntFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_string` event - pub fn log_named_string_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedStringFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_uint` event - pub fn log_named_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedUintFilter, - > { - self.0.event() - } - ///Gets the contract's `log_string` event - pub fn log_string_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogStringFilter, - > { - self.0.event() - } - ///Gets the contract's `log_uint` event - pub fn log_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogUintFilter> { - self.0.event() - } - ///Gets the contract's `logs` event - pub fn logs_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogsFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DFMMSetUpEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for DFMMSetUp { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log", abi = "log(string)")] - pub struct LogFilter(pub ::std::string::String); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_address", abi = "log_address(address)")] - pub struct LogAddressFilter(pub ::ethers::core::types::Address); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(uint256[])")] - pub struct LogArray1Filter { - pub val: ::std::vec::Vec<::ethers::core::types::U256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(int256[])")] - pub struct LogArray2Filter { - pub val: ::std::vec::Vec<::ethers::core::types::I256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(address[])")] - pub struct LogArray3Filter { - pub val: ::std::vec::Vec<::ethers::core::types::Address>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_bytes", abi = "log_bytes(bytes)")] - pub struct LogBytesFilter(pub ::ethers::core::types::Bytes); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_bytes32", abi = "log_bytes32(bytes32)")] - pub struct LogBytes32Filter(pub [u8; 32]); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_int", abi = "log_int(int256)")] - pub struct LogIntFilter(pub ::ethers::core::types::I256); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_address", abi = "log_named_address(string,address)")] - pub struct LogNamedAddressFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,uint256[])")] - pub struct LogNamedArray1Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::U256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,int256[])")] - pub struct LogNamedArray2Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::I256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,address[])")] - pub struct LogNamedArray3Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::Address>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_bytes", abi = "log_named_bytes(string,bytes)")] - pub struct LogNamedBytesFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_bytes32", abi = "log_named_bytes32(string,bytes32)")] - pub struct LogNamedBytes32Filter { - pub key: ::std::string::String, - pub val: [u8; 32], - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "log_named_decimal_int", - abi = "log_named_decimal_int(string,int256,uint256)" - )] - pub struct LogNamedDecimalIntFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::I256, - pub decimals: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "log_named_decimal_uint", - abi = "log_named_decimal_uint(string,uint256,uint256)" - )] - pub struct LogNamedDecimalUintFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::U256, - pub decimals: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_int", abi = "log_named_int(string,int256)")] - pub struct LogNamedIntFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_string", abi = "log_named_string(string,string)")] - pub struct LogNamedStringFilter { - pub key: ::std::string::String, - pub val: ::std::string::String, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_uint", abi = "log_named_uint(string,uint256)")] - pub struct LogNamedUintFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_string", abi = "log_string(string)")] - pub struct LogStringFilter(pub ::std::string::String); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_uint", abi = "log_uint(uint256)")] - pub struct LogUintFilter(pub ::ethers::core::types::U256); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "logs", abi = "logs(bytes)")] - pub struct LogsFilter(pub ::ethers::core::types::Bytes); - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum DFMMSetUpEvents { - LogFilter(LogFilter), - LogAddressFilter(LogAddressFilter), - LogArray1Filter(LogArray1Filter), - LogArray2Filter(LogArray2Filter), - LogArray3Filter(LogArray3Filter), - LogBytesFilter(LogBytesFilter), - LogBytes32Filter(LogBytes32Filter), - LogIntFilter(LogIntFilter), - LogNamedAddressFilter(LogNamedAddressFilter), - LogNamedArray1Filter(LogNamedArray1Filter), - LogNamedArray2Filter(LogNamedArray2Filter), - LogNamedArray3Filter(LogNamedArray3Filter), - LogNamedBytesFilter(LogNamedBytesFilter), - LogNamedBytes32Filter(LogNamedBytes32Filter), - LogNamedDecimalIntFilter(LogNamedDecimalIntFilter), - LogNamedDecimalUintFilter(LogNamedDecimalUintFilter), - LogNamedIntFilter(LogNamedIntFilter), - LogNamedStringFilter(LogNamedStringFilter), - LogNamedUintFilter(LogNamedUintFilter), - LogStringFilter(LogStringFilter), - LogUintFilter(LogUintFilter), - LogsFilter(LogsFilter), - } - impl ::ethers::contract::EthLogDecode for DFMMSetUpEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = LogFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogFilter(decoded)); - } - if let Ok(decoded) = LogAddressFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogAddressFilter(decoded)); - } - if let Ok(decoded) = LogArray1Filter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogArray1Filter(decoded)); - } - if let Ok(decoded) = LogArray2Filter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogArray2Filter(decoded)); - } - if let Ok(decoded) = LogArray3Filter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogArray3Filter(decoded)); - } - if let Ok(decoded) = LogBytesFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogBytesFilter(decoded)); - } - if let Ok(decoded) = LogBytes32Filter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogBytes32Filter(decoded)); - } - if let Ok(decoded) = LogIntFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedAddressFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogNamedAddressFilter(decoded)); - } - if let Ok(decoded) = LogNamedArray1Filter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogNamedArray1Filter(decoded)); - } - if let Ok(decoded) = LogNamedArray2Filter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogNamedArray2Filter(decoded)); - } - if let Ok(decoded) = LogNamedArray3Filter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogNamedArray3Filter(decoded)); - } - if let Ok(decoded) = LogNamedBytesFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogNamedBytesFilter(decoded)); - } - if let Ok(decoded) = LogNamedBytes32Filter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogNamedBytes32Filter(decoded)); - } - if let Ok(decoded) = LogNamedDecimalIntFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogNamedDecimalIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedDecimalUintFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogNamedDecimalUintFilter(decoded)); - } - if let Ok(decoded) = LogNamedIntFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogNamedIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedStringFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogNamedStringFilter(decoded)); - } - if let Ok(decoded) = LogNamedUintFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogNamedUintFilter(decoded)); - } - if let Ok(decoded) = LogStringFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogStringFilter(decoded)); - } - if let Ok(decoded) = LogUintFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogUintFilter(decoded)); - } - if let Ok(decoded) = LogsFilter::decode_log(log) { - return Ok(DFMMSetUpEvents::LogsFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for DFMMSetUpEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::LogFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogAddressFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray1Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray2Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray3Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogBytesFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogBytes32Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogIntFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogNamedAddressFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray1Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray2Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray3Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedBytesFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedBytes32Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedDecimalIntFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedDecimalUintFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedIntFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogNamedStringFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedUintFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogStringFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogUintFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogsFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogFilter) -> Self { - Self::LogFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogAddressFilter) -> Self { - Self::LogAddressFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogArray1Filter) -> Self { - Self::LogArray1Filter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogArray2Filter) -> Self { - Self::LogArray2Filter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogArray3Filter) -> Self { - Self::LogArray3Filter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogBytesFilter) -> Self { - Self::LogBytesFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogBytes32Filter) -> Self { - Self::LogBytes32Filter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogIntFilter) -> Self { - Self::LogIntFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogNamedAddressFilter) -> Self { - Self::LogNamedAddressFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogNamedArray1Filter) -> Self { - Self::LogNamedArray1Filter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogNamedArray2Filter) -> Self { - Self::LogNamedArray2Filter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogNamedArray3Filter) -> Self { - Self::LogNamedArray3Filter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogNamedBytesFilter) -> Self { - Self::LogNamedBytesFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogNamedBytes32Filter) -> Self { - Self::LogNamedBytes32Filter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogNamedDecimalIntFilter) -> Self { - Self::LogNamedDecimalIntFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogNamedDecimalUintFilter) -> Self { - Self::LogNamedDecimalUintFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogNamedIntFilter) -> Self { - Self::LogNamedIntFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogNamedStringFilter) -> Self { - Self::LogNamedStringFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogNamedUintFilter) -> Self { - Self::LogNamedUintFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogStringFilter) -> Self { - Self::LogStringFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogUintFilter) -> Self { - Self::LogUintFilter(value) - } - } - impl ::core::convert::From for DFMMSetUpEvents { - fn from(value: LogsFilter) -> Self { - Self::LogsFilter(value) - } - } - ///Container type for all input parameters for the `IS_TEST` function with signature `IS_TEST()` and selector `0xfa7626d4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "IS_TEST", abi = "IS_TEST()")] - pub struct IsTestCall; - ///Container type for all input parameters for the `POOL_ID` function with signature `POOL_ID()` and selector `0xe0d7d0e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "POOL_ID", abi = "POOL_ID()")] - pub struct PoolIdCall; - ///Container type for all input parameters for the `TEST_SWAP_FEE` function with signature `TEST_SWAP_FEE()` and selector `0x620a2607` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "TEST_SWAP_FEE", abi = "TEST_SWAP_FEE()")] - pub struct TestSwapFeeCall; - ///Container type for all input parameters for the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeArtifacts", abi = "excludeArtifacts()")] - pub struct ExcludeArtifactsCall; - ///Container type for all input parameters for the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeContracts", abi = "excludeContracts()")] - pub struct ExcludeContractsCall; - ///Container type for all input parameters for the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeSenders", abi = "excludeSenders()")] - pub struct ExcludeSendersCall; - ///Container type for all input parameters for the `failed` function with signature `failed()` and selector `0xba414fa6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "failed", abi = "failed()")] - pub struct FailedCall; - ///Container type for all input parameters for the `getPoolLiquidityToken` function with signature `getPoolLiquidityToken(uint256)` and selector `0xe21485ad` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolLiquidityToken", abi = "getPoolLiquidityToken(uint256)")] - pub struct GetPoolLiquidityTokenCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `setUp` function with signature `setUp()` and selector `0x0a9254e4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setUp", abi = "setUp()")] - pub struct SetUpCall; - ///Container type for all input parameters for the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifactSelectors", abi = "targetArtifactSelectors()")] - pub struct TargetArtifactSelectorsCall; - ///Container type for all input parameters for the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifacts", abi = "targetArtifacts()")] - pub struct TargetArtifactsCall; - ///Container type for all input parameters for the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetContracts", abi = "targetContracts()")] - pub struct TargetContractsCall; - ///Container type for all input parameters for the `targetInterfaces` function with signature `targetInterfaces()` and selector `0x2ade3880` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetInterfaces", abi = "targetInterfaces()")] - pub struct TargetInterfacesCall; - ///Container type for all input parameters for the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSelectors", abi = "targetSelectors()")] - pub struct TargetSelectorsCall; - ///Container type for all input parameters for the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSenders", abi = "targetSenders()")] - pub struct TargetSendersCall; - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum DFMMSetUpCalls { - IsTest(IsTestCall), - PoolId(PoolIdCall), - TestSwapFee(TestSwapFeeCall), - ExcludeArtifacts(ExcludeArtifactsCall), - ExcludeContracts(ExcludeContractsCall), - ExcludeSenders(ExcludeSendersCall), - Failed(FailedCall), - GetPoolLiquidityToken(GetPoolLiquidityTokenCall), - SetUp(SetUpCall), - TargetArtifactSelectors(TargetArtifactSelectorsCall), - TargetArtifacts(TargetArtifactsCall), - TargetContracts(TargetContractsCall), - TargetInterfaces(TargetInterfacesCall), - TargetSelectors(TargetSelectorsCall), - TargetSenders(TargetSendersCall), - } - impl ::ethers::core::abi::AbiDecode for DFMMSetUpCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::IsTest(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PoolId(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestSwapFee(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeArtifacts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeContracts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeSenders(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Failed(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPoolLiquidityToken(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SetUp(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetArtifactSelectors(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetArtifacts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetContracts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetInterfaces(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetSelectors(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetSenders(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for DFMMSetUpCalls { - fn encode(self) -> Vec { - match self { - Self::IsTest(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PoolId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TestSwapFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Failed(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolLiquidityToken(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetUp(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TargetArtifactSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetInterfaces(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for DFMMSetUpCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::IsTest(element) => ::core::fmt::Display::fmt(element, f), - Self::PoolId(element) => ::core::fmt::Display::fmt(element, f), - Self::TestSwapFee(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeSenders(element) => ::core::fmt::Display::fmt(element, f), - Self::Failed(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolLiquidityToken(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SetUp(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetArtifactSelectors(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TargetArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetInterfaces(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSelectors(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSenders(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: IsTestCall) -> Self { - Self::IsTest(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: PoolIdCall) -> Self { - Self::PoolId(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: TestSwapFeeCall) -> Self { - Self::TestSwapFee(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: ExcludeArtifactsCall) -> Self { - Self::ExcludeArtifacts(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: ExcludeContractsCall) -> Self { - Self::ExcludeContracts(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: ExcludeSendersCall) -> Self { - Self::ExcludeSenders(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: FailedCall) -> Self { - Self::Failed(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: GetPoolLiquidityTokenCall) -> Self { - Self::GetPoolLiquidityToken(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: SetUpCall) -> Self { - Self::SetUp(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: TargetArtifactSelectorsCall) -> Self { - Self::TargetArtifactSelectors(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: TargetArtifactsCall) -> Self { - Self::TargetArtifacts(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: TargetContractsCall) -> Self { - Self::TargetContracts(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: TargetInterfacesCall) -> Self { - Self::TargetInterfaces(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: TargetSelectorsCall) -> Self { - Self::TargetSelectors(value) - } - } - impl ::core::convert::From for DFMMSetUpCalls { - fn from(value: TargetSendersCall) -> Self { - Self::TargetSenders(value) - } - } - ///Container type for all return fields from the `IS_TEST` function with signature `IS_TEST()` and selector `0xfa7626d4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IsTestReturn(pub bool); - ///Container type for all return fields from the `POOL_ID` function with signature `POOL_ID()` and selector `0xe0d7d0e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PoolIdReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `TEST_SWAP_FEE` function with signature `TEST_SWAP_FEE()` and selector `0x620a2607` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TestSwapFeeReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeArtifactsReturn { - pub excluded_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeContractsReturn { - pub excluded_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeSendersReturn { - pub excluded_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `failed` function with signature `failed()` and selector `0xba414fa6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct FailedReturn(pub bool); - ///Container type for all return fields from the `getPoolLiquidityToken` function with signature `getPoolLiquidityToken(uint256)` and selector `0xe21485ad` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolLiquidityTokenReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactSelectorsReturn { - pub targeted_artifact_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactsReturn { - pub targeted_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetContractsReturn { - pub targeted_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `targetInterfaces` function with signature `targetInterfaces()` and selector `0x2ade3880` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetInterfacesReturn { - pub targeted_interfaces: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSelectorsReturn { - pub targeted_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSendersReturn { - pub targeted_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } -} diff --git a/crates/bindings/src/dynamic_param_lib.rs b/crates/bindings/src/dynamic_param_lib.rs deleted file mode 100644 index 88d160002..000000000 --- a/crates/bindings/src/dynamic_param_lib.rs +++ /dev/null @@ -1,150 +0,0 @@ -pub use dynamic_param_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod dynamic_param_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("InvalidUpdateEnd"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidUpdateEnd"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static DYNAMICPARAMLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x1BW`@Q`\x94\x90\x81a\0i\x8290\x81PP\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 \xE7\xD6A\xC1\xDE\xFE_6\x1D\x16m\x86\x91\xFCR\xC5\xCEl\x06\x9F\xEE\xBDCi\"L4n\xA6\xB3q~dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static DYNAMICPARAMLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 \xE7\xD6A\xC1\xDE\xFE_6\x1D\x16m\x86\x91\xFCR\xC5\xCEl\x06\x9F\xEE\xBDCi\"L4n\xA6\xB3q~dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static DYNAMICPARAMLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct DynamicParamLib(::ethers::contract::Contract); - impl ::core::clone::Clone for DynamicParamLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for DynamicParamLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for DynamicParamLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for DynamicParamLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(DynamicParamLib)) - .field(&self.address()) - .finish() - } - } - impl DynamicParamLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - DYNAMICPARAMLIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - DYNAMICPARAMLIB_ABI.clone(), - DYNAMICPARAMLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for DynamicParamLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `InvalidUpdateEnd` with signature `InvalidUpdateEnd()` and selector `0xcde205da` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidUpdateEnd", abi = "InvalidUpdateEnd()")] - pub struct InvalidUpdateEnd; -} diff --git a/crates/bindings/src/erc20.rs b/crates/bindings/src/erc20.rs deleted file mode 100644 index 71bff0075..000000000 --- a/crates/bindings/src/erc20.rs +++ /dev/null @@ -1,1307 +0,0 @@ -pub use erc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod erc20 { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("allowance"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allowance"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("approve"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("approve"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("decimals"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("decimals"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("name"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("name"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("nonces"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("nonces"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("permit"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("permit"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("value"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deadline"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("v"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("r"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("s"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("symbol"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("symbol"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("totalSupply"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("totalSupply"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("transfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("transferFrom"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Approval"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Approval"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Transfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static ERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct ERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for ERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for ERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for ERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for ERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(ERC20)).field(&self.address()).finish() - } - } - impl ERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - ERC20_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ERC20Events> { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for ERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum ERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for ERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(ERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(ERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for ERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for ERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum ERC20Calls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Decimals(DecimalsCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for ERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ERC20Calls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for ERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/fixed_point_math_lib.rs b/crates/bindings/src/fixed_point_math_lib.rs deleted file mode 100644 index ae3ac5354..000000000 --- a/crates/bindings/src/fixed_point_math_lib.rs +++ /dev/null @@ -1,125 +0,0 @@ -pub use fixed_point_math_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod fixed_point_math_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static FIXEDPOINTMATHLIB_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x1BW`@Q`\x94\x90\x81a\0i\x8290\x81PP\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 \x0EbO\xEC\x1F\x04\x15\xC5\xEB\xD4\xC8\xAC\x98*\xC9K_\xA7\xA6\xCA\xF02G\x80\x89`\xB08\xAF\x104\xF0dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static FIXEDPOINTMATHLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 \x0EbO\xEC\x1F\x04\x15\xC5\xEB\xD4\xC8\xAC\x98*\xC9K_\xA7\xA6\xCA\xF02G\x80\x89`\xB08\xAF\x104\xF0dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static FIXEDPOINTMATHLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct FixedPointMathLib(::ethers::contract::Contract); - impl ::core::clone::Clone for FixedPointMathLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for FixedPointMathLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for FixedPointMathLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for FixedPointMathLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(FixedPointMathLib)) - .field(&self.address()) - .finish() - } - } - impl FixedPointMathLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - FIXEDPOINTMATHLIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - FIXEDPOINTMATHLIB_ABI.clone(), - FIXEDPOINTMATHLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for FixedPointMathLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/g3m.rs b/crates/bindings/src/g3m.rs deleted file mode 100644 index 77da1fc25..000000000 --- a/crates/bindings/src/g3m.rs +++ /dev/null @@ -1,1357 +0,0 @@ -pub use g3m::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod g3m { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("dfmm_"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("computeSwapConstant"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "computeSwapConstant", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("dfmm"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("dfmm"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPoolParams"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getPoolParams"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("init"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("init"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("invariant"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("internalParams"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("internalParams"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("wX"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct DynamicParam"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("swapFee"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("controller"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("update"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("update"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("validateAllocateOrDeallocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "validateAllocateOrDeallocate", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("invariant"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("validateSwap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("validateSwap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("invariant"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("liquidityDelta"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("nextRx"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("nextRy"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("nextL"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("InvalidSender"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidSender"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidUpdateCode"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidUpdateCode"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidUpdateEnd"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidUpdateEnd"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidWeightX"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidWeightX"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("NotDFMM"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NotDFMM"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static G3M_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\xA0\x80`@R4a\0\xF1W`@Q`\x1Fa\x16\x158\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xDBW\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0\x8BWQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0\x86W`\x80R`@Qa\x14\xD6\x90\x81a\x01?\x829`\x80Q\x81\x81\x81a\x04\x89\x01R\x81\x81a\x07\xCD\x01R\x81\x81a\t\x81\x01Ra\n\xDF\x01R\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0BvW`\x005`\xE0\x1C\x80b.RK\x14a\0\x8BW\x80c\x1E\xDBq\xE5\x14a\0\x86W\x80ch\xBD>8\x14a\0\x81W\x80cs\xCB-\x03\x14a\0|W\x80c\x8A\x04\xBD\xD5\x14a\0wW\x80c\xAC\xAD)\x89\x14a\0rW\x80c\xAF\xBA\x13\xC4\x14a\0mWc\xDC\x17\x83U\x03a\x0BvWa\x0B\x0EV[a\n\xC9V[a\thV[a\t.V[a\x07\xB1V[a\x04'V[a\x03\x9AV[4a\x01\x07W`@6`\x03\x19\x01\x12a\x01\x02W`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\0\xF5a\0\xD2a\0\xC4` \x936\x90`\x04\x01a\x03EV[\x83\x80\x82Q\x83\x01\x01\x91\x01a\x0B\xD9V[\x90a\0\xEFa\0\xE1`\x045a\r%V[\x86\x80\x82Q\x83\x01\x01\x91\x01a\x0B\xF4V[\x92a\x0E\x0EV[`@Q\x90\x81R\xF3[a\x01\xA7V[a\x01WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[a\x02PV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x92\x91\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x02\x82W`@Q\x91a\x02\xD3`\x1F\x82\x01`\x1F\x19\x16` \x01\x84a\x02\x87V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x02\xF0W\x82\x81` \x93\x84`\0\x96\x017\x01\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x80`\x1F\x83\x01\x12\x15a\x03cW\x81` a\x03`\x935\x91\x01a\x02\xA9V[\x90V[a\x01\xF7V[\x90`@Qa\x03u\x81a\x02fV[```\x03\x82\x94\x80T\x84R`\x01\x81\x01T` \x85\x01R`\x02\x81\x01T`@\x85\x01R\x01T\x91\x01RV[4a\x04\x0CW` 6`\x03\x19\x01\x12a\x01\x02W`\x045`\0R`\0` R`\xC0`@`\0 a\x03\xC6\x81a\x03hV[\x90`\x04\x81\x01T\x90`\x05`\x01\x80`\xA0\x1B\x03\x91\x01T\x16\x90```@Q\x93\x80Q\x85R` \x81\x01Q` \x86\x01R`@\x81\x01Q`@\x86\x01R\x01Q``\x84\x01R`\x80\x83\x01R`\xA0\x82\x01R\xF3[a\x01\x07V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04\"WV[`\0\x80\xFD[4a\x04\x0CW``6`\x03\x19\x01\x12a\x01\x02Wa\x04C`\x045a\x04\x11V[`$5`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\x04f\x906\x90`\x04\x01a\x03EV[\x90a\x04p\x81a\r%V[\x90a\x04\x86\x82Q\x92` \x80\x80\x95\x83\x01\x01\x91\x01a\x0B\xF4V[\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x06\x9FW`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x84\x90R\x90``\x90\x82\x90`$\x90\x82\x90Z\xFA\x94\x85\x15a\x06\x9AW`\0\x90\x81\x92\x82\x97a\x06aW[P\x80\x84\x80a\x04\xFF\x93Q\x83\x01\x01\x91\x01a\x0B\xD9V[\x94\x91\x95\x90\x97\x87\x87\x85\x81\x11`\0\x14a\x05\xC8W\x93a\x05T\x86\x94a\x05N\x86a\x05Ia\x05v\x9B\x97a\x05Da\x05a\x98`@a\x05;a\x05m\x9Fa\x05g\x9Fa\x0C\xAEV[\x91\x01Q\x90a\x11\xEEV[a\x11\xEEV[a\x12\x1AV[Pa\r%V[\x80Q\x81\x01\x82\x01\x91\x01a\x0B\xF4V[\x91a\x0E_V[\x83a\x0C\xCDV[\x93\x82\x86\x85a\x0E\x0EV[\x93\x84`\x13\x19\x12\x92\x83a\x05\xBDW[a\x05\xB9\x93\x94`@Q\x96\x87\x96\x87\x92`\xA0\x94\x91\x97\x96\x95\x92`\xC0\x85\x01\x98\x15\x15\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x01RV[\x03\x90\xF3[`\x14\x86\x12\x93Pa\x05\x83V[PP\x91\x92\x90\x93\x80\x89\x11`\0\x14a\x06\x03Wa\x05aa\x05m\x94a\x05Ta\x05v\x97a\x05N\x85a\x05I\x8F\x99\x8Fa\x05D\x90`@a\x05;\x86a\x05g\x9Fa\x0C\xAEV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7Finvalid swap: inputs x and y hav`D\x82\x01Roe the same sign!`\x80\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x96Pa\x04\xFF\x92Pa\x06\x8B\x91P``=``\x11a\x06\x93W[a\x06\x83\x81\x83a\x02\x87V[\x81\x01\x90a\x0B\xD9V[\x96\x90\x92a\x04\xECV[P=a\x06yV[a\x0C\x8CV[a\x0C9V[\x90```\x03\x19\x83\x01\x12a\x01\x02W`\x045a\x06\xBD\x81a\x04\x11V[\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\0\xFDW\x80`#\x83\x01\x12\x15a\x03cW\x81`\x04\x015\x93\x84\x11a\x07XW`$\x84\x83\x01\x01\x11a\x06\xFFW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[4a\x04\x0CWa\x07\xBF6a\x06\xA4V[\x91\x92P`\x01`\x01`\xA0\x1B\x03\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x163\x03a\t\x1CW\x81`\xC0\x91\x81\x01\x03\x12a\x01\x02W\x805\x91` \x82\x015\x91`@\x81\x015\x94``\x82\x015\x90`\xA0\x83\x015\x92a\x08$\x84a\x04\x11V[g\r\xE0\xB6\xB3\xA7d\0\0\x83\x10\x15a\t\nWa\x08\xC8\x94a\x08\xC0\x94`\x80a\x08\xAC\x93a\x08\xB1\x96a\x08Z\x87`\0R`\0` R`@`\0 \x90V[U\x015`\x04a\x08s\x86`\0R`\0` R`@`\0 \x90V[\x01U\x16`\x05a\x08\x8C\x84`\0R`\0` R`@`\0 \x90V[\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90UV[a\r%V[` \x80\x82Q\x83\x01\x01\x91\x01a\x0B\xF4V[\x84\x83\x85a\x0E\x0EV[\x92\x83`\x13\x19\x12\x91\x82a\x08\xFFW[`@\x80Q\x93\x15\x15\x84R` \x84\x01\x95\x90\x95R\x93\x82\x01\x92\x90\x92R``\x81\x01\x92\x90\x92R`\x80\x82\x01R`\xA0\x90\xF3[`\x14\x85\x12\x92Pa\x08\xD5V[`@Qc\xE8\xA3\x8Aa`\xE0\x1B\x81R`\x04\x90\xFD[`@QchS\xCB\xA7`\xE0\x1B\x81R`\x04\x90\xFD[4a\x04\x0CW``a\t>6a\x06\xA4V[\x81\x80\x94P\x94\x92\x94\x01\x03\x12a\x01\x02W\x805\x90a\x08\xC8a\x08\xC0a\x08\xB1`@` \x85\x015\x94\x015\x95a\r%V[4a\x04\x0CWa\tv6a\x06\xA4V[\x92`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x163\x03a\t\x1CWa\t\xDEa\t\xD2`\x05a\t\xC4\x87`\0R`\0` R`@`\0 \x90V[\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x91\x16\x03a\n\xB7Wa\t\xF1\x83\x82\x01\x82a\x0C\xF0V[a\t\xFA\x81a\r\x05V[`\x01\x81\x03a\n3WPa\n\x1Da\n\x18a\n.\x92`\x04\x94\x956\x91a\x02\xA9V[a\x0FPV[\x92`\0R`\0` R`@`\0 \x90V[\x01U[\0[a\n<\x81a\r\x05V[`\x02\x81\x03a\nxWP\x90a\n`a\n[a\ns\x93a\n1\x956\x91a\x02\xA9V[a\x0E\xA6V[\x92\x90\x91`\0R`\0` R`@`\0 \x90V[a\x0E\xCEV[\x80a\n\x84`\x03\x92a\r\x05V[\x03a\n\xA5Wa\x08\x8Ca\n\x1Da\n\xA0`\x05\x93a\n1\x966\x91a\x02\xA9V[a\x0E~V[`@Qc#]+=`\xE0\x1B\x81R`\x04\x90\xFD[`@Qcn\xDA\xEF/`\xE1\x1B\x81R`\x04\x90\xFD[4a\x04\x0CW`\x006`\x03\x19\x01\x12a\x01\x02W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x04\x0CW` \x80`\x03\x196\x01\x12a\x01\x02Wa\x0B+`\x045a\r%V[\x90`@\x80Q\x91` \x83R\x83Q\x91\x82` \x85\x01R`\0[\x83\x81\x10a\x0BcW\x84`@\x81\x86`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x81\x01\x03\x01\x90\xF3[\x85\x81\x01\x83\x01Q\x85\x82\x01\x83\x01R\x82\x01a\x0BAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81``\x91\x03\x12a\x01\x02W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[\x90\x81`\x80\x91\x03\x12a\x01\x02W```@Q\x91a\x0C\x0E\x83a\x02fV[\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x01Qa\x0C1\x81a\x04\x11V[``\x82\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[`@Q=`\0\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0C\xBBWV[a\x0C\x98V[\x91\x90\x82\x01\x80\x92\x11a\x0C\xBBWV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x0C\xBBWV[`\x04\x11\x15a\x04\"WV[\x90\x81` \x91\x03\x12a\x01\x02W5a\x03`\x81a\x0C\xE6V[`\x04\x11\x15a\r\x0FWV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@\x80Qa\r2\x81a\x02fV[`\0\x91\x82\x82R` \x82\x01\x93\x83\x85R\x81\x83\x01\x84\x81R``\x84\x01\x90\x85\x82R\x82\x86R\x85` Ra\rha\rc\x85\x88 a\x03hV[a\x0F\x85V[\x80\x86Rg\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x03\x90\x81\x11a\x0C\xBBW\x84a\x03`\x97a\r\xC5\x95a\r\xB8\x94`\x05\x94a\x0E\0\x9CR\x81\x83R\x82` R`\x04\x84\x84 \x01T\x90R\x81R\x80` R \x01`\x01\x80`\xA0\x1B\x03\x90T\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90RV[Q\x92\x83\x91` \x83\x01\x91\x90\x91```\x80\x82\x01\x93\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[\x03`\x1F\x19\x81\x01\x83R\x82a\x02\x87V[\x92` a\x0E7\x84a\x0E1a\x0E)a\x0E@\x96\x97a\x0EF\x99a\x12JV[\x85Q\x90a\x10.V[\x95a\x12JV[\x91\x01Q\x90a\x10.V[\x90a\x11\xEEV[g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x81\x01\x90\x81\x13`\x01\x16a\x0C\xBBW\x90V[a\x03`\x92\x91` a\x0Eua\x0E@\x93\x85Q\x90a\x10.V[\x93\x01Q\x90a\x10.V[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x0E\x9B` `@\x93\x01Qa\x0C\xE6V[\x01Qa\t\xD2\x81a\x04\x11V[``\x81\x80Q\x81\x01\x03\x12a\x01\x02Wa\x0E\xC0` \x82\x01Qa\x0C\xE6V[```@\x82\x01Q\x91\x01Q\x90\x91V[\x91\x90B\x82\x11\x15a\x0F>Wa\x0E\xE4a\rc\x84a\x03hV[\x90\x81\x84UB`\x03\x85\x01UB\x83\x03\x91\x83\x83\x11a\x0C\xBBWa\x0F\x02\x91a\x0C\xCDV[B\x83\x14a\x0F(W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\x0C\xBBW`\x02\x92`\x01\x85\x01U\x05\x91\x01UV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`@Qcf\xF1\x02\xED`\xE1\x1B\x81R`\x04\x90\xFD[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x0Fm` `@\x93\x01Qa\x0C\xE6V[\x01Q\x90V[\x81\x81\x02\x92\x91\x81\x15\x91\x84\x04\x14\x17\x15a\x0C\xBBWV[``\x81\x01Q\x90` \x81\x01Q\x80\x83\x14a\x10\x04W\x80B\x11`\0\x14a\x0F\xFCW\x91[\x82\x03\x91\x82\x11a\x0C\xBBW`@\x81\x01\x90\x81Q`\0\x81\x13`\0\x14a\x0F\xD6WPa\x03`\x92a\x0F\xD0\x91Q\x92Q\x90a\x0FrV[\x90a\x0C\xC0V[\x90Q\x91P`\x01`\xFF\x1B\x81\x14a\x0C\xBBWa\x03`\x92a\x0F\xF6\x91`\0\x03\x90a\x0FrV[\x90a\x0C\xAEV[PB\x91a\x0F\xA3V[P\x90PQ\x90V[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\x0C\xBBW\x81\x84\x05\x14\x90\x15\x17\x15a\x0C\xBBWV[a\x11\xDBa\x03`\x92}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84a\x11\xE9\x93a\x10d`\0\x82\x13a\x12lV[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\x10\x80\x82a\x14.V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1Da\x10\x0BV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x12\xA4V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\"W`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x04\"W`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\"W\x04\x90V[\x15a\x12sWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a\x14(Wh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x13\xF4We\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[P`\0\x90V[a\x149\x81\x15\x15a\x12lV[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V\xFE\xA2dipfsX\"\x12 [\xFF\x04\xB2O\xE5B\xF6\xEB\x8C\x12\x9C)\xE7I\xF2\x13\xF3LQ/\x9AH\x99Pf\x93\xE6\xE348\xACdsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static G3M_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\x0BvW`\x005`\xE0\x1C\x80b.RK\x14a\0\x8BW\x80c\x1E\xDBq\xE5\x14a\0\x86W\x80ch\xBD>8\x14a\0\x81W\x80cs\xCB-\x03\x14a\0|W\x80c\x8A\x04\xBD\xD5\x14a\0wW\x80c\xAC\xAD)\x89\x14a\0rW\x80c\xAF\xBA\x13\xC4\x14a\0mWc\xDC\x17\x83U\x03a\x0BvWa\x0B\x0EV[a\n\xC9V[a\thV[a\t.V[a\x07\xB1V[a\x04'V[a\x03\x9AV[4a\x01\x07W`@6`\x03\x19\x01\x12a\x01\x02W`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\0\xF5a\0\xD2a\0\xC4` \x936\x90`\x04\x01a\x03EV[\x83\x80\x82Q\x83\x01\x01\x91\x01a\x0B\xD9V[\x90a\0\xEFa\0\xE1`\x045a\r%V[\x86\x80\x82Q\x83\x01\x01\x91\x01a\x0B\xF4V[\x92a\x0E\x0EV[`@Q\x90\x81R\xF3[a\x01\xA7V[a\x01WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[a\x02PV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x92\x91\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x02\x82W`@Q\x91a\x02\xD3`\x1F\x82\x01`\x1F\x19\x16` \x01\x84a\x02\x87V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x02\xF0W\x82\x81` \x93\x84`\0\x96\x017\x01\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x80`\x1F\x83\x01\x12\x15a\x03cW\x81` a\x03`\x935\x91\x01a\x02\xA9V[\x90V[a\x01\xF7V[\x90`@Qa\x03u\x81a\x02fV[```\x03\x82\x94\x80T\x84R`\x01\x81\x01T` \x85\x01R`\x02\x81\x01T`@\x85\x01R\x01T\x91\x01RV[4a\x04\x0CW` 6`\x03\x19\x01\x12a\x01\x02W`\x045`\0R`\0` R`\xC0`@`\0 a\x03\xC6\x81a\x03hV[\x90`\x04\x81\x01T\x90`\x05`\x01\x80`\xA0\x1B\x03\x91\x01T\x16\x90```@Q\x93\x80Q\x85R` \x81\x01Q` \x86\x01R`@\x81\x01Q`@\x86\x01R\x01Q``\x84\x01R`\x80\x83\x01R`\xA0\x82\x01R\xF3[a\x01\x07V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04\"WV[`\0\x80\xFD[4a\x04\x0CW``6`\x03\x19\x01\x12a\x01\x02Wa\x04C`\x045a\x04\x11V[`$5`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\x04f\x906\x90`\x04\x01a\x03EV[\x90a\x04p\x81a\r%V[\x90a\x04\x86\x82Q\x92` \x80\x80\x95\x83\x01\x01\x91\x01a\x0B\xF4V[\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x06\x9FW`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x84\x90R\x90``\x90\x82\x90`$\x90\x82\x90Z\xFA\x94\x85\x15a\x06\x9AW`\0\x90\x81\x92\x82\x97a\x06aW[P\x80\x84\x80a\x04\xFF\x93Q\x83\x01\x01\x91\x01a\x0B\xD9V[\x94\x91\x95\x90\x97\x87\x87\x85\x81\x11`\0\x14a\x05\xC8W\x93a\x05T\x86\x94a\x05N\x86a\x05Ia\x05v\x9B\x97a\x05Da\x05a\x98`@a\x05;a\x05m\x9Fa\x05g\x9Fa\x0C\xAEV[\x91\x01Q\x90a\x11\xEEV[a\x11\xEEV[a\x12\x1AV[Pa\r%V[\x80Q\x81\x01\x82\x01\x91\x01a\x0B\xF4V[\x91a\x0E_V[\x83a\x0C\xCDV[\x93\x82\x86\x85a\x0E\x0EV[\x93\x84`\x13\x19\x12\x92\x83a\x05\xBDW[a\x05\xB9\x93\x94`@Q\x96\x87\x96\x87\x92`\xA0\x94\x91\x97\x96\x95\x92`\xC0\x85\x01\x98\x15\x15\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x01RV[\x03\x90\xF3[`\x14\x86\x12\x93Pa\x05\x83V[PP\x91\x92\x90\x93\x80\x89\x11`\0\x14a\x06\x03Wa\x05aa\x05m\x94a\x05Ta\x05v\x97a\x05N\x85a\x05I\x8F\x99\x8Fa\x05D\x90`@a\x05;\x86a\x05g\x9Fa\x0C\xAEV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7Finvalid swap: inputs x and y hav`D\x82\x01Roe the same sign!`\x80\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x96Pa\x04\xFF\x92Pa\x06\x8B\x91P``=``\x11a\x06\x93W[a\x06\x83\x81\x83a\x02\x87V[\x81\x01\x90a\x0B\xD9V[\x96\x90\x92a\x04\xECV[P=a\x06yV[a\x0C\x8CV[a\x0C9V[\x90```\x03\x19\x83\x01\x12a\x01\x02W`\x045a\x06\xBD\x81a\x04\x11V[\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\0\xFDW\x80`#\x83\x01\x12\x15a\x03cW\x81`\x04\x015\x93\x84\x11a\x07XW`$\x84\x83\x01\x01\x11a\x06\xFFW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[4a\x04\x0CWa\x07\xBF6a\x06\xA4V[\x91\x92P`\x01`\x01`\xA0\x1B\x03\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x163\x03a\t\x1CW\x81`\xC0\x91\x81\x01\x03\x12a\x01\x02W\x805\x91` \x82\x015\x91`@\x81\x015\x94``\x82\x015\x90`\xA0\x83\x015\x92a\x08$\x84a\x04\x11V[g\r\xE0\xB6\xB3\xA7d\0\0\x83\x10\x15a\t\nWa\x08\xC8\x94a\x08\xC0\x94`\x80a\x08\xAC\x93a\x08\xB1\x96a\x08Z\x87`\0R`\0` R`@`\0 \x90V[U\x015`\x04a\x08s\x86`\0R`\0` R`@`\0 \x90V[\x01U\x16`\x05a\x08\x8C\x84`\0R`\0` R`@`\0 \x90V[\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90UV[a\r%V[` \x80\x82Q\x83\x01\x01\x91\x01a\x0B\xF4V[\x84\x83\x85a\x0E\x0EV[\x92\x83`\x13\x19\x12\x91\x82a\x08\xFFW[`@\x80Q\x93\x15\x15\x84R` \x84\x01\x95\x90\x95R\x93\x82\x01\x92\x90\x92R``\x81\x01\x92\x90\x92R`\x80\x82\x01R`\xA0\x90\xF3[`\x14\x85\x12\x92Pa\x08\xD5V[`@Qc\xE8\xA3\x8Aa`\xE0\x1B\x81R`\x04\x90\xFD[`@QchS\xCB\xA7`\xE0\x1B\x81R`\x04\x90\xFD[4a\x04\x0CW``a\t>6a\x06\xA4V[\x81\x80\x94P\x94\x92\x94\x01\x03\x12a\x01\x02W\x805\x90a\x08\xC8a\x08\xC0a\x08\xB1`@` \x85\x015\x94\x015\x95a\r%V[4a\x04\x0CWa\tv6a\x06\xA4V[\x92`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x163\x03a\t\x1CWa\t\xDEa\t\xD2`\x05a\t\xC4\x87`\0R`\0` R`@`\0 \x90V[\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x91\x16\x03a\n\xB7Wa\t\xF1\x83\x82\x01\x82a\x0C\xF0V[a\t\xFA\x81a\r\x05V[`\x01\x81\x03a\n3WPa\n\x1Da\n\x18a\n.\x92`\x04\x94\x956\x91a\x02\xA9V[a\x0FPV[\x92`\0R`\0` R`@`\0 \x90V[\x01U[\0[a\n<\x81a\r\x05V[`\x02\x81\x03a\nxWP\x90a\n`a\n[a\ns\x93a\n1\x956\x91a\x02\xA9V[a\x0E\xA6V[\x92\x90\x91`\0R`\0` R`@`\0 \x90V[a\x0E\xCEV[\x80a\n\x84`\x03\x92a\r\x05V[\x03a\n\xA5Wa\x08\x8Ca\n\x1Da\n\xA0`\x05\x93a\n1\x966\x91a\x02\xA9V[a\x0E~V[`@Qc#]+=`\xE0\x1B\x81R`\x04\x90\xFD[`@Qcn\xDA\xEF/`\xE1\x1B\x81R`\x04\x90\xFD[4a\x04\x0CW`\x006`\x03\x19\x01\x12a\x01\x02W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x04\x0CW` \x80`\x03\x196\x01\x12a\x01\x02Wa\x0B+`\x045a\r%V[\x90`@\x80Q\x91` \x83R\x83Q\x91\x82` \x85\x01R`\0[\x83\x81\x10a\x0BcW\x84`@\x81\x86`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x81\x01\x03\x01\x90\xF3[\x85\x81\x01\x83\x01Q\x85\x82\x01\x83\x01R\x82\x01a\x0BAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81``\x91\x03\x12a\x01\x02W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[\x90\x81`\x80\x91\x03\x12a\x01\x02W```@Q\x91a\x0C\x0E\x83a\x02fV[\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x01Qa\x0C1\x81a\x04\x11V[``\x82\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[`@Q=`\0\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0C\xBBWV[a\x0C\x98V[\x91\x90\x82\x01\x80\x92\x11a\x0C\xBBWV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x0C\xBBWV[`\x04\x11\x15a\x04\"WV[\x90\x81` \x91\x03\x12a\x01\x02W5a\x03`\x81a\x0C\xE6V[`\x04\x11\x15a\r\x0FWV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@\x80Qa\r2\x81a\x02fV[`\0\x91\x82\x82R` \x82\x01\x93\x83\x85R\x81\x83\x01\x84\x81R``\x84\x01\x90\x85\x82R\x82\x86R\x85` Ra\rha\rc\x85\x88 a\x03hV[a\x0F\x85V[\x80\x86Rg\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x03\x90\x81\x11a\x0C\xBBW\x84a\x03`\x97a\r\xC5\x95a\r\xB8\x94`\x05\x94a\x0E\0\x9CR\x81\x83R\x82` R`\x04\x84\x84 \x01T\x90R\x81R\x80` R \x01`\x01\x80`\xA0\x1B\x03\x90T\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90RV[Q\x92\x83\x91` \x83\x01\x91\x90\x91```\x80\x82\x01\x93\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[\x03`\x1F\x19\x81\x01\x83R\x82a\x02\x87V[\x92` a\x0E7\x84a\x0E1a\x0E)a\x0E@\x96\x97a\x0EF\x99a\x12JV[\x85Q\x90a\x10.V[\x95a\x12JV[\x91\x01Q\x90a\x10.V[\x90a\x11\xEEV[g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x81\x01\x90\x81\x13`\x01\x16a\x0C\xBBW\x90V[a\x03`\x92\x91` a\x0Eua\x0E@\x93\x85Q\x90a\x10.V[\x93\x01Q\x90a\x10.V[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x0E\x9B` `@\x93\x01Qa\x0C\xE6V[\x01Qa\t\xD2\x81a\x04\x11V[``\x81\x80Q\x81\x01\x03\x12a\x01\x02Wa\x0E\xC0` \x82\x01Qa\x0C\xE6V[```@\x82\x01Q\x91\x01Q\x90\x91V[\x91\x90B\x82\x11\x15a\x0F>Wa\x0E\xE4a\rc\x84a\x03hV[\x90\x81\x84UB`\x03\x85\x01UB\x83\x03\x91\x83\x83\x11a\x0C\xBBWa\x0F\x02\x91a\x0C\xCDV[B\x83\x14a\x0F(W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\x0C\xBBW`\x02\x92`\x01\x85\x01U\x05\x91\x01UV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`@Qcf\xF1\x02\xED`\xE1\x1B\x81R`\x04\x90\xFD[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x0Fm` `@\x93\x01Qa\x0C\xE6V[\x01Q\x90V[\x81\x81\x02\x92\x91\x81\x15\x91\x84\x04\x14\x17\x15a\x0C\xBBWV[``\x81\x01Q\x90` \x81\x01Q\x80\x83\x14a\x10\x04W\x80B\x11`\0\x14a\x0F\xFCW\x91[\x82\x03\x91\x82\x11a\x0C\xBBW`@\x81\x01\x90\x81Q`\0\x81\x13`\0\x14a\x0F\xD6WPa\x03`\x92a\x0F\xD0\x91Q\x92Q\x90a\x0FrV[\x90a\x0C\xC0V[\x90Q\x91P`\x01`\xFF\x1B\x81\x14a\x0C\xBBWa\x03`\x92a\x0F\xF6\x91`\0\x03\x90a\x0FrV[\x90a\x0C\xAEV[PB\x91a\x0F\xA3V[P\x90PQ\x90V[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\x0C\xBBW\x81\x84\x05\x14\x90\x15\x17\x15a\x0C\xBBWV[a\x11\xDBa\x03`\x92}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84a\x11\xE9\x93a\x10d`\0\x82\x13a\x12lV[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\x10\x80\x82a\x14.V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1Da\x10\x0BV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x12\xA4V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\"W`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x04\"W`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\"W\x04\x90V[\x15a\x12sWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a\x14(Wh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x13\xF4We\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[P`\0\x90V[a\x149\x81\x15\x15a\x12lV[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V\xFE\xA2dipfsX\"\x12 [\xFF\x04\xB2O\xE5B\xF6\xEB\x8C\x12\x9C)\xE7I\xF2\x13\xF3LQ/\x9AH\x99Pf\x93\xE6\xE348\xACdsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static G3M_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct G3M(::ethers::contract::Contract); - impl ::core::clone::Clone for G3M { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for G3M { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for G3M { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for G3M { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(G3M)).field(&self.address()).finish() - } - } - impl G3M { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - G3M_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - G3M_ABI.clone(), - G3M_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `computeSwapConstant` (0x002e524b) function - pub fn compute_swap_constant( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([0, 46, 82, 75], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `dfmm` (0xafba13c4) function - pub fn dfmm( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([175, 186, 19, 196], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolParams` (0xdc178355) function - pub fn get_pool_params( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([220, 23, 131, 85], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `init` (0x73cb2d03) function - pub fn init( - &self, - p0: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([115, 203, 45, 3], (p0, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `internalParams` (0x1edb71e5) function - pub fn internal_params( - &self, - p0: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (DynamicParam, ::ethers::core::types::U256, ::ethers::core::types::Address), - > { - self.0 - .method_hash([30, 219, 113, 229], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `update` (0xacad2989) function - pub fn update( - &self, - sender: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([172, 173, 41, 137], (sender, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateAllocateOrDeallocate` (0x8a04bdd5) function - pub fn validate_allocate_or_deallocate( - &self, - p0: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([138, 4, 189, 213], (p0, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateSwap` (0x68bd3e38) function - pub fn validate_swap( - &self, - p0: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([104, 189, 62, 56], (p0, pool_id, data)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for G3M { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `InvalidSender` with signature `InvalidSender()` and selector `0xddb5de5e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSender", abi = "InvalidSender()")] - pub struct InvalidSender; - ///Custom Error type `InvalidUpdateCode` with signature `InvalidUpdateCode()` and selector `0x235d2b3d` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidUpdateCode", abi = "InvalidUpdateCode()")] - pub struct InvalidUpdateCode; - ///Custom Error type `InvalidUpdateEnd` with signature `InvalidUpdateEnd()` and selector `0xcde205da` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidUpdateEnd", abi = "InvalidUpdateEnd()")] - pub struct InvalidUpdateEnd; - ///Custom Error type `InvalidWeightX` with signature `InvalidWeightX()` and selector `0xe8a38a61` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidWeightX", abi = "InvalidWeightX()")] - pub struct InvalidWeightX; - ///Custom Error type `NotDFMM` with signature `NotDFMM()` and selector `0x6853cba7` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NotDFMM", abi = "NotDFMM()")] - pub struct NotDFMM; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum G3MErrors { - InvalidSender(InvalidSender), - InvalidUpdateCode(InvalidUpdateCode), - InvalidUpdateEnd(InvalidUpdateEnd), - InvalidWeightX(InvalidWeightX), - NotDFMM(NotDFMM), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for G3MErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidSender(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidUpdateCode(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidUpdateEnd(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidWeightX(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NotDFMM(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for G3MErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::InvalidSender(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidUpdateCode(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidUpdateEnd(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidWeightX(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NotDFMM(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for G3MErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for G3MErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::InvalidSender(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidUpdateCode(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidUpdateEnd(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidWeightX(element) => ::core::fmt::Display::fmt(element, f), - Self::NotDFMM(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for G3MErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for G3MErrors { - fn from(value: InvalidSender) -> Self { - Self::InvalidSender(value) - } - } - impl ::core::convert::From for G3MErrors { - fn from(value: InvalidUpdateCode) -> Self { - Self::InvalidUpdateCode(value) - } - } - impl ::core::convert::From for G3MErrors { - fn from(value: InvalidUpdateEnd) -> Self { - Self::InvalidUpdateEnd(value) - } - } - impl ::core::convert::From for G3MErrors { - fn from(value: InvalidWeightX) -> Self { - Self::InvalidWeightX(value) - } - } - impl ::core::convert::From for G3MErrors { - fn from(value: NotDFMM) -> Self { - Self::NotDFMM(value) - } - } - ///Container type for all input parameters for the `computeSwapConstant` function with signature `computeSwapConstant(uint256,bytes)` and selector `0x002e524b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "computeSwapConstant", abi = "computeSwapConstant(uint256,bytes)")] - pub struct ComputeSwapConstantCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `dfmm` function with signature `dfmm()` and selector `0xafba13c4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "dfmm", abi = "dfmm()")] - pub struct DfmmCall; - ///Container type for all input parameters for the `getPoolParams` function with signature `getPoolParams(uint256)` and selector `0xdc178355` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolParams", abi = "getPoolParams(uint256)")] - pub struct GetPoolParamsCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `init` function with signature `init(address,uint256,bytes)` and selector `0x73cb2d03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "init", abi = "init(address,uint256,bytes)")] - pub struct InitCall { - pub p0: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `internalParams` function with signature `internalParams(uint256)` and selector `0x1edb71e5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "internalParams", abi = "internalParams(uint256)")] - pub struct InternalParamsCall(pub ::ethers::core::types::U256); - ///Container type for all input parameters for the `update` function with signature `update(address,uint256,bytes)` and selector `0xacad2989` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "update", abi = "update(address,uint256,bytes)")] - pub struct UpdateCall { - pub sender: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `validateAllocateOrDeallocate` function with signature `validateAllocateOrDeallocate(address,uint256,bytes)` and selector `0x8a04bdd5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "validateAllocateOrDeallocate", - abi = "validateAllocateOrDeallocate(address,uint256,bytes)" - )] - pub struct ValidateAllocateOrDeallocateCall { - pub p0: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `validateSwap` function with signature `validateSwap(address,uint256,bytes)` and selector `0x68bd3e38` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "validateSwap", abi = "validateSwap(address,uint256,bytes)")] - pub struct ValidateSwapCall { - pub p0: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum G3MCalls { - ComputeSwapConstant(ComputeSwapConstantCall), - Dfmm(DfmmCall), - GetPoolParams(GetPoolParamsCall), - Init(InitCall), - InternalParams(InternalParamsCall), - Update(UpdateCall), - ValidateAllocateOrDeallocate(ValidateAllocateOrDeallocateCall), - ValidateSwap(ValidateSwapCall), - } - impl ::ethers::core::abi::AbiDecode for G3MCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ComputeSwapConstant(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Dfmm(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPoolParams(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Init(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InternalParams(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Update(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ValidateAllocateOrDeallocate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ValidateSwap(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for G3MCalls { - fn encode(self) -> Vec { - match self { - Self::ComputeSwapConstant(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Dfmm(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolParams(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Init(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InternalParams(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Update(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ValidateAllocateOrDeallocate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ValidateSwap(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for G3MCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ComputeSwapConstant(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Dfmm(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolParams(element) => ::core::fmt::Display::fmt(element, f), - Self::Init(element) => ::core::fmt::Display::fmt(element, f), - Self::InternalParams(element) => ::core::fmt::Display::fmt(element, f), - Self::Update(element) => ::core::fmt::Display::fmt(element, f), - Self::ValidateAllocateOrDeallocate(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::ValidateSwap(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for G3MCalls { - fn from(value: ComputeSwapConstantCall) -> Self { - Self::ComputeSwapConstant(value) - } - } - impl ::core::convert::From for G3MCalls { - fn from(value: DfmmCall) -> Self { - Self::Dfmm(value) - } - } - impl ::core::convert::From for G3MCalls { - fn from(value: GetPoolParamsCall) -> Self { - Self::GetPoolParams(value) - } - } - impl ::core::convert::From for G3MCalls { - fn from(value: InitCall) -> Self { - Self::Init(value) - } - } - impl ::core::convert::From for G3MCalls { - fn from(value: InternalParamsCall) -> Self { - Self::InternalParams(value) - } - } - impl ::core::convert::From for G3MCalls { - fn from(value: UpdateCall) -> Self { - Self::Update(value) - } - } - impl ::core::convert::From for G3MCalls { - fn from(value: ValidateAllocateOrDeallocateCall) -> Self { - Self::ValidateAllocateOrDeallocate(value) - } - } - impl ::core::convert::From for G3MCalls { - fn from(value: ValidateSwapCall) -> Self { - Self::ValidateSwap(value) - } - } - ///Container type for all return fields from the `computeSwapConstant` function with signature `computeSwapConstant(uint256,bytes)` and selector `0x002e524b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeSwapConstantReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `dfmm` function with signature `dfmm()` and selector `0xafba13c4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DfmmReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getPoolParams` function with signature `getPoolParams(uint256)` and selector `0xdc178355` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolParamsReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `init` function with signature `init(address,uint256,bytes)` and selector `0x73cb2d03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InitReturn { - pub valid: bool, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `internalParams` function with signature `internalParams(uint256)` and selector `0x1edb71e5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InternalParamsReturn { - pub w_x: DynamicParam, - pub swap_fee: ::ethers::core::types::U256, - pub controller: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `validateAllocateOrDeallocate` function with signature `validateAllocateOrDeallocate(address,uint256,bytes)` and selector `0x8a04bdd5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ValidateAllocateOrDeallocateReturn { - pub valid: bool, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `validateSwap` function with signature `validateSwap(address,uint256,bytes)` and selector `0x68bd3e38` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ValidateSwapReturn { - pub valid: bool, - pub invariant: ::ethers::core::types::I256, - pub liquidity_delta: ::ethers::core::types::I256, - pub next_rx: ::ethers::core::types::U256, - pub next_ry: ::ethers::core::types::U256, - pub next_l: ::ethers::core::types::U256, - } -} diff --git a/crates/bindings/src/g3m_extended_lib.rs b/crates/bindings/src/g3m_extended_lib.rs deleted file mode 100644 index 6a02abf58..000000000 --- a/crates/bindings/src/g3m_extended_lib.rs +++ /dev/null @@ -1,74 +0,0 @@ -pub use g3m_extended_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod g3m_extended_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static G3MEXTENDEDLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct G3MExtendedLib(::ethers::contract::Contract); - impl ::core::clone::Clone for G3MExtendedLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for G3MExtendedLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for G3MExtendedLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for G3MExtendedLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(G3MExtendedLib)) - .field(&self.address()) - .finish() - } - } - impl G3MExtendedLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - G3MEXTENDEDLIB_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for G3MExtendedLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/g3m_lib.rs b/crates/bindings/src/g3m_lib.rs deleted file mode 100644 index 7cc65cbe5..000000000 --- a/crates/bindings/src/g3m_lib.rs +++ /dev/null @@ -1,123 +0,0 @@ -pub use g3m_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod g3m_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static G3MLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x1BW`@Q`\x94\x90\x81a\0i\x8290\x81PP\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 \x96P>\x81@\x1FZ\xA8\xDD\xB0n,\x17\x98\x95\\\xE5\xD6\x8As\"\xFD\x99\xAB\xDD\x9BHCq\x16\x94\xF0dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static G3MLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 \x96P>\x81@\x1FZ\xA8\xDD\xB0n,\x17\x98\x95\\\xE5\xD6\x8As\"\xFD\x99\xAB\xDD\x9BHCq\x16\x94\xF0dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static G3MLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct G3MLib(::ethers::contract::Contract); - impl ::core::clone::Clone for G3MLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for G3MLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for G3MLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for G3MLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(G3MLib)).field(&self.address()).finish() - } - } - impl G3MLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - G3MLIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - G3MLIB_ABI.clone(), - G3MLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for G3MLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/g3m_set_up.rs b/crates/bindings/src/g3m_set_up.rs deleted file mode 100644 index 4e0376702..000000000 --- a/crates/bindings/src/g3m_set_up.rs +++ /dev/null @@ -1,2830 +0,0 @@ -pub use g3m_set_up::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod g3m_set_up { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("IS_TEST"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("IS_TEST"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("POOL_ID"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("POOL_ID"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("TEST_SWAP_FEE"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("TEST_SWAP_FEE"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeArtifacts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeArtifacts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "excludedArtifacts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeContracts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeContracts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "excludedContracts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeSenders"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeSenders"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("excludedSenders_"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("failed"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("failed"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPoolLiquidityToken"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "getPoolLiquidityToken", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("setUp"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("setUp"), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetArtifactSelectors"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "targetArtifactSelectors", - ), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedArtifactSelectors_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzSelector[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetArtifacts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetArtifacts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedArtifacts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetContracts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetContracts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedContracts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetInterfaces"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetInterfaces"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedInterfaces_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzInterface[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetSelectors"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetSelectors"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedSelectors_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzSelector[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetSenders"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetSenders"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetedSenders_"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("log"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_address"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_address"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_array"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_bytes"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_bytes"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_bytes32"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_bytes32"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_int"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_address"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_address"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_array"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_bytes"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_bytes"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_bytes32"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_bytes32"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_decimal_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "log_named_decimal_int", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_decimal_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "log_named_decimal_uint", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_int"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_string"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_string"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_uint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_string"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_string"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_uint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("logs"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("logs"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("BisectionLib_InvalidBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "BisectionLib_InvalidBounds", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("lower"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("upper"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("BisectionLib_RootOutsideBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "BisectionLib_RootOutsideBounds", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("lowerResult"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("upperResult"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static G3MSETUP_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@R4b\0\0\xD6W`\x01`\xFF\x19\x81\x81`\x07T\x16\x17`\x07U`\x0BT\x16\x17`\x0BUb\0\0}b\0\0/b\0\x01]V[g\x06\xF0[Y\xD3\xB2\0\0\x80\x82R` \x82\x01\x81\x90Rf\n\xA8{\xEES\x80\0`@\x83\x01\x81\x90R0``\x90\x93\x01\x83\x90R`#\x82\x90U`$\x91\x90\x91U`%U`&\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90\x91\x17\x90UV[b\0\0\x8Fg\r\xE0\xB6\xB3\xA7d\0\0`'UV[b\0\0\xA1g\r\xE0\xB6\xB3\xA7d\0\0`(UV[b\0\0\xC6b\0\0\xC0`'T`(Tb\0\0\xB9b\0\x01}V[\x91b\0\x03WV[b\0\x02\\V[`@Qa\xA7\xBF\x90\x81b\0\x0C\xD8\x829\xF3[bF\x1B\xCD`\xE5\x1B`\x80R` `\x84R`\"`\xA4R\x7FEther sent to non-payable functi`\xC4Ra7\xB7`\xF1\x1B`\xE4R`\x84`\x80\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x01WW`@RV[b\0\x01\x1DV[`@Q\x90`\x80\x82\x01`\x01`\x01`@\x1B\x03\x81\x11\x83\x82\x10\x17b\0\x01WW`@RV[`@Q\x90`\x80\x82\x01`\x01`\x01`@\x1B\x03\x81\x11\x83\x82\x10\x17b\0\x01WW`@\x90\x81R`#T\x83R`$T` \x84\x01R`%T\x90\x83\x01R`&T`\x01`\x01`\xA0\x1B\x03\x16``\x83\x01RV[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x01\xF6W[` \x83\x10\x14b\0\x01\xE0WV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x01\xD4V[`\x1F\x81\x11b\0\x02\x0EWPPV[`\0\x90`)`\0R` `\0 \x90` `\x1F\x85\x01`\x05\x1C\x83\x01\x94\x10b\0\x02QW[`\x1F\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x02EWPPPV[\x81\x81U`\x01\x01b\0\x028V[\x90\x92P\x82\x90b\0\x02/V[\x80Q\x90\x91\x90`\x01`\x01`@\x1B\x03\x81\x11b\0\x01WWb\0\x02\x88\x81b\0\x02\x82`)Tb\0\x01\xC4V[b\0\x02\x01V[` \x80`\x1F\x83\x11`\x01\x14b\0\x02\xCFWP\x81\x90b\0\x02\xBE\x93\x94`\0\x92b\0\x02\xC3W[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x90V[`)UV[\x01Q\x90P8\x80b\0\x02\xA9V[`)`\0R`\x1F\x19\x83\x16\x94\x90\x91\x90\x7F\xCB|\x14\xCE\x17\x8FV\xE2\xE8\xD8j\xB3>\xBC\n\xE0\x81\xBA\x85V\xA0\x0C\xD1\"\x03\x88A\x86q\x81\xCA\xAC\x92`\0\x90[\x87\x82\x10b\0\x03>WPP\x83`\x01\x95\x96\x10b\0\x03$W[PPP\x81\x1B\x01`)UV[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x19V[\x80`\x01\x85\x96\x82\x94\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01\x90b\0\x03\x03V[\x92\x91b\0\x03\xA1` \x82\x01b\0\x03\x9Ab\0\x03\x91b\0\x03\x89\x88b\0\x03\x83\x85Q\x98b\0\x03\x83\x89Q\x80\x9Bb\0\x07\xBAV[b\0\x07\xDDV[\x95\x88b\0\x05\x9AV[\x91Q\x85b\0\x05\x9AV[\x90b\0\x07]V[\x93b\0\x03\xB0\x82\x86\x85\x84b\0\x05\x1AV[\x85\x90`\0\x80\x82\x12\x15b\0\x04\xBCW[\x80\x82\x12b\0\x04\x99WPb\0\x04\x19\x81\x13\x15b\0\x0B]Wh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15b\0\x0B)We\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0``\x91k\x80\0\0\0\0\0\0\0\0\0\0\0\x85\x82\x85\x1B\x05\x01\x83\x1D\x94\x85\x02\x90\x03n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x81l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x84\x1D\x93n\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x83n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x94m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[P`\0\x90V[b\0\x0Bp\x81\x15\x15b\0\t\x8EV[\x80`\x01\x80`\x80\x1B\x03\x10`\x07\x1B\x81\x81\x1C`\x01\x80`@\x1B\x03\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x80\x80Q\x81\x01\x03\x91`\xE0\x83\x12b\0\x0C\x87W` \x82\x01Q\x92`\x80`@\x84\x01Q\x91`_\x19\x01\x12b\0\x0C6Wb\0\x04\x96\x93b\0\x0C+`\xE0b\0\x0C\x08b\0\x01]V[\x95`\x80\x81\x01Q\x87R`\xA0\x81\x01Q` \x88\x01R`\xC0\x81\x01Q`@\x88\x01R\x01b\0\x08\x1FV[``\x85\x01Rb\0\x05\x1AV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10b\0\x14\x9EW`\x005`\xE0\x1C\x80c\n\x92T\xE4\x14b\0\x01\x1AW\x80c\x1E\xD7\x83\x1C\x14b\0\x01\x14W\x80c*\xDE8\x80\x14b\0\x01\x0EW\x80c>^<#\x14b\0\x01\x08W\x80c?r\x86\xF4\x14b\0\x01\x02W\x80cb\n&\x07\x14b\0\0\xFCW\x80cf\xD9\xA9\xA0\x14b\0\0\xF6W\x80c\x85\"l\x81\x14b\0\0\xF0W\x80c\x91j\x17\xC6\x14b\0\0\xEAW\x80c\xB5P\x8A\xA9\x14b\0\0\xE4W\x80c\xBAAO\xA6\x14b\0\0\xDEW\x80c\xE0\xD7\xD0\xE9\x14b\0\0\xD8W\x80c\xE2\x0C\x9Fq\x14b\0\0\xD2W\x80c\xE2\x14\x85\xAD\x14b\0\0\xCCWc\xFAv&\xD4\x03b\0\x14\x9EWb\0\x14yV[b\0\x13\xB8V[b\0\x13-V[b\0\x13\rV[b\0\x12\xE4V[b\0\x11\x98V[b\0\x10)V[b\0\x0E\xC9V[b\0\x0B=V[b\0\n[V[b\0\t\xD0V[b\0\tEV[b\0\x08\x8BV[b\0\x06\xD7V[b\0\x01\xD2V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x91\x03\x12b\0\x01\xCCWV[b\0\x01pV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCWb\0\x01\xF0b\0\x19\x8BV[`@\x80Q\x90a\x13\x01\x80\x83\x01\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x80\x83\x10\x85\x84\x11\x17b\0\x06OW\x80b\0\x02&b\0\x1D \x94\x84\x86\x849b\0\x15\x86V[\x03\x90\x86\xF0\x80\x15b\0\x06!W`\x1E\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x82Q\x91\x81\x83\x01\x83\x81\x10\x86\x82\x11\x17b\0\x06OW\x83\x92b\0\x02q\x92\x849b\0\x15\xD2V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1F\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x02\xAE\x91\x16[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15b\0\x06'W\x81Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0`$\x83\x01R\x91\x85\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06sW[P`\x1FTb\0\x03\x0B\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x81;\x15b\0\x06'W\x82Q\x90\x81R0`\x04\x82\x01Rh\x05k\xC7^-c\x10\0\0`$\x82\x01R\x90\x84\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06UW[P`\x1ETb\0\x03a\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1FTb\0\x03x\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x82Q\x91a\x07\xA1\x90\x81\x84\x01\x92\x84\x84\x10\x87\x85\x11\x17b\0\x06OW\x84\x93b\0\x03\xC5\x93b\0\x9F\xE9\x869`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R``\x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1D\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x80Qa0)\x80\x82\x01\x82\x81\x10\x85\x82\x11\x17b\0\x06OW\x82\x91b\x000!\x839\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1C\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x82\x17\x90Ub\0\x04@\x90b\0\x02\xA2V[\x81Q\x90a\x16\x15\x80\x83\x01\x91\x83\x83\x10\x86\x84\x11\x17b\0\x06OW\x83\x92b\0\x04v\x92b\0\x89\xD4\x859`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W` \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x82\x17\x81U\x92\x90b\0\x04\xAD\x90b\0\x02\xA2V[\x82Q\x91a)\x8A\x80\x84\x01\x92\x90\x91\x83\x11\x84\x84\x10\x17b\0\x06OW\x83\x92b\0\x04\xE4\x92b\0`J\x859`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`!\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x05\x1A\x91\x16b\0\x02\xA2V[`\x1CT\x90\x91\x90b\0\x054\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x91\x80;\x15b\0\x06'W\x81Qc\t^\xA7\xB3`\xE0\x1B\x80\x82R`\x01`\x01`\xA0\x1B\x03\x94\x90\x94\x16`\x04\x82\x01R`\0\x19`$\x82\x01R\x90\x84\x90\x82\x90`D\x90\x82\x90\x89\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06-W[P`\x1FTb\0\x05\x96\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1CTb\0\x05\xAD\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x80;\x15b\0\x06'W\x91Q\x92\x83R`\x01`\x01`\xA0\x1B\x03\x16`\x04\x83\x01R`\0\x19`$\x83\x01R\x82\x90\x82\x90`D\x90\x82\x90\x87\x90Z\xF1\x80\x15b\0\x06!Wb\0\x05\xEEW\x82\x80\xF3[\x81b\0\x06\x12\x92\x90=\x10b\0\x06\x19W[b\0\x06\t\x81\x83b\0\x15IV[\x81\x01\x90b\0\x16eV[P8\x80\x82\x80\xF3[P=b\0\x05\xFDV[b\0\x15\xC6V[b\0\x16\x12V[b\0\x06G\x90\x84=\x86\x11b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[P8b\0\x05~V[b\0\x15\x01V[\x80b\0\x06eb\0\x06l\x92b\0\x15\x17V[\x80b\0\x01\xC0V[8b\0\x03IV[\x80b\0\x06eb\0\x06\x83\x92b\0\x15\x17V[8b\0\x02\xF3V[b\0\x01 V[` \x90` `@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10b\0\x06\xB9WPPPP\x90V[\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01b\0\x06\xAAV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x14T\x91\x82\x81R` \x80\x91\x01\x92`\x14`\0R\x7F\xCEm{R\x82\xBD\x9A6a\xAE\x06\x1F\xEE\xD1\xDB\xDANR\xAB\x07;\x1F\x92\x85\xBEn\x15]\x9C8\xD4\xEC\x91`\0\x90[\x82\x82\x10b\0\x07RWb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[`@Q\x91\x82\x91\x82b\0\x06\x90V[\x03\x90\xF3[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x07&V[`\0[\x83\x81\x10b\0\x07\x87WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x07vV[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01`\x05\x94\x83`@\x86`\x05\x1B\x85\x01\x01\x97\x01\x95`\0\x80\x94[\x87\x86\x10b\0\x07\xD6WPPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x80\x97\x98\x99`?\x19\x83\x82\x03\x01\x87R\x8AQ\x90\x82\x87\x82\x01\x92`\x01\x80`\xA0\x1B\x03\x81Q\x16\x83R\x01Q\x91\x87\x84\x83\x01R\x82Q\x80\x91R``\x90\x84\x82\x84\x01\x92\x82\x8A\x1B\x85\x01\x01\x94\x01\x92\x87[\x82\x81\x10b\0\x08CWPPPPP\x90\x80`\x01\x92\x9B\x01\x96\x01\x96\x01\x94\x97\x96\x95\x93\x92\x91\x90b\0\x07\xC2V[\x91\x93\x95\x80\x80`\x01\x93\x95\x97`_\x19\x87\x82\x03\x01\x89R\x89Qb\0\x08o\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x07sV[`\x1F\x80\x19\x91\x01\x16\x01\x01\x97\x01\x95\x01\x91\x01\x91\x8C\x95\x94\x93\x91\x92b\0\x08\x1DV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x1BTb\0\x08\xAC\x81b\0\x16\x7FV[`@\x91b\0\x08\xBE`@Q\x92\x83b\0\x15IV[\x80\x82R`\x1B`\0\x90\x81R` \x7F:\xD8\xAAO\x87TC#\xA9\xD1\xE5\xDD\x90/@\xC3VRzyUhq\x13\xDB_\x9A\x85\xADW\x9D\xC1\x81\x85\x01[\x84\x84\x10b\0\t\x07W`@Q\x80b\0\x07N\x88\x82b\0\x07\x98V[`\x02\x83`\x01\x92\x89Qb\0\t\x1A\x81b\0\x15,V[\x84\x80`\xA0\x1B\x03\x86T\x16\x81Rb\0\t2\x85\x87\x01b\0\x16\x98V[\x83\x82\x01R\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x08\xEFV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x16T\x91\x82\x81R` \x80\x91\x01\x92`\x16`\0R\x7F\xD83\x14}}\xC3U\xBAE\x9F\xC7\x88\xF6i\xE5\x8C\xFA\xF9\xDC%\xDD\xCD\x07\x02\xE8}i\xC7\xB5\x12B\x89\x91`\0\x90[\x82\x82\x10b\0\t\xAFWb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\t\x94V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x15T\x91\x82\x81R` \x80\x91\x01\x92`\x15`\0R\x7FU\xF4H\xFD\xEA\x98\xC4\xD2\x9E\xB3@u~\xF0\xA6l\xD0=\xBB\x958\x90\x8Aj\x81\xD9`&\xB7\x1E\xC4u\x91`\0\x90[\x82\x82\x10b\0\n:Wb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\n\x1FV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `@Qf\n\xA8{\xEES\x80\0\x81R\xF3[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01\x82`@\x85`\x05\x1B\x84\x01\x01\x96\x01\x94`\0\x80\x93[\x86\x85\x10b\0\n\xB9WPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x80\x96\x97\x98`?\x19\x83\x82\x03\x01\x86R\x89Q\x82``\x81\x88\x85\x01\x93`\x01\x80`\xA0\x1B\x03\x81Q\x16\x86R\x01Q\x93\x88\x83\x82\x01R\x84Q\x80\x94R\x01\x92\x01\x90\x85\x90[\x80\x82\x10b\0\x0B\x18WPPP\x90\x80`\x01\x92\x9A\x01\x95\x01\x95\x01\x93\x96\x95\x94\x92\x91\x90b\0\n\xA6V[\x82Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x8A\x94\x93\x84\x01\x93\x90\x92\x01\x91`\x01\x91\x90\x91\x01\x90b\0\n\xF5V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x19Tb\0\x0B^\x81b\0\x16\x7FV[b\0\x0Bm`@Q\x91\x82b\0\x15IV[\x81\x81R`\x19`\0\x90\x81R\x91` \x7F\x94I\x98'>G{IQD\xFB\x87\x94\xC9\x14\x19\x7F<\xCBF\xBE)\0\xF4i\x8F\xD0\xEFt<\x96\x95\x81\x84\x01[\x83\x86\x10b\0\x0B\xB7W`@Q\x80b\0\x07N\x87\x82b\0\n\x7FV[\x82`@Qb\0\x0B\xC6\x81b\0\x15,V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x85\x01\x80T\x80\x83Rb\0\x0B\xF4` \x84\x01[\x92`\0R` `\0 \x90V[\x90`\0\x91[\x81`\x07\x84\x01\x10b\0\rjW\x93\x86`\x02\x97\x96\x94\x82\x94b\0\x0Ck\x94`\x01\x9B\x98T\x91\x84\x82\x82\x10b\0\rGW[\x82\x82\x10b\0\r)W[\x82\x82\x10b\0\r\x0BW[\x82\x82\x10b\0\x0C\xEDW[\x82\x82\x10b\0\x0C\xCFW[\x82\x82\x10b\0\x0C\xB1W[\x82\x82\x10b\0\x0C\x94W[P\x10b\0\x0C~W[P\x90P\x03\x82b\0\x15IV[\x83\x82\x01R\x81R\x01\x92\x01\x95\x01\x94\x90b\0\x0B\x9FV[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x01\x86\x908b\0\x0C`V[\x83\x81\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x8D\x91\x01\x93\x01\x84b\0\x0CXV[`\x01`\x01`\xE0\x1B\x03\x19`@\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0COV[`\x01`\x01`\xE0\x1B\x03\x19``\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0CFV[`\x01`\x01`\xE0\x1B\x03\x19`\x80\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C=V[`\x01`\x01`\xE0\x1B\x03\x19`\xA0\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C4V[`\x01`\x01`\xE0\x1B\x03\x19`\xC0\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C+V[\x84b\0\r`\x8F\x93\x96\x86`\xE0\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x93\x01\x84b\0\x0C\"V[\x93\x94\x95P\x90\x91`\x01a\x01\0`\x08\x92b\0\x0E:\x87T\x8D`\xE0b\0\r\x96\x85\x84\x83\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[`\x01`\x01`\xE0\x1B\x03\x19`\xC0\x84\x81\x1B\x82\x16\x84\x88\x01R`\xA0\x85\x81\x1B\x83\x16`@\x89\x01R\x91\x93b\0\x0E)\x92\x90\x91\x85\x91\x87\x91\x90b\0\x0E\x17\x90b\0\x0E\0\x8C\x86\x86``\x92`\x80\x90b\0\r\xEF\x85\x82\x01\x85\x85\x85\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x92\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[`\x01`\x01`\xE0\x1B\x03\x19`@\x85\x90\x1B\x86\x16\x16\x90\x8C\x01RV[\x89\x01\x92\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x84\x01\x91\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x94\x01\x92\x01\x90\x88\x95\x94\x93\x92b\0\x0B\xF9V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x83\x01\x92\x81`@\x84`\x05\x1B\x83\x01\x01\x95\x01\x93`\0\x91[\x84\x83\x10b\0\x0E\x80WPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x84\x80\x80`\x01\x93`?\x19\x86\x82\x03\x01\x87R\x8AQb\0\x0E\xAE\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x07sV[`\x1F\x01`\x1F\x19\x16\x01\x01\x98\x01\x96\x95\x94\x91\x90\x91\x01\x92\x01\x90b\0\x0EoV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCW`\x18Tb\0\x0E\xEB\x81b\0\x16\x7FV[\x90`@\x92b\0\x0E\xFE`@Q\x93\x84b\0\x15IV[\x81\x83R` \x80\x84\x01\x90`\x18\x83R\x7F\xB1=-v\xD1\xF4\xB7\xBE\x83H\x82\xE4\x10\xB3\xE3\xA8\xAF\xAFi\xF86\0\xAE$\xDB5C\x91\xD27\x8D.\x95\x83\x92[\x85\x84\x10b\0\x0FHW`@Q\x80b\0\x07N\x89\x82b\0\x0EKV[\x81Q\x85\x91\x89T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x10\x1EW[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x0F\xEFWP`\x01\x14b\0\x0F\xABW[PPb\0\x0F\x9C\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x98\x01\x93\x01\x92\x96b\0\x0F0V[\x95Pb\0\x0F\xBD\x8D`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x0F\xDBWPP\x94\x90\x94\x01\x93b\0\x0F\x9C\x81b\0\x0F\x8AV[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x0F\xC1V[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x0F\x9C\x81b\0\x0F\x8AV[cNH{q`\xE0\x1B\x8BR`\"`\x04R`$\x8B\xFD[\x91`\x7F\x16\x91b\0\x0FbV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x1ATb\0\x10J\x81b\0\x16\x7FV[b\0\x10Y`@Q\x91\x82b\0\x15IV[\x81\x81R`\x1A`\0\x90\x81R\x91` \x7F\x05|8J}\x1CT\xF3\xA1\xB2\xE5\xE6{&\x17\xB8\"O\xDF\xD1\xEAr4\xEE\xA5s\xA6\xFFf_\xF6>\x81\x84\x01[\x83\x86\x10b\0\x10\xA3W`@Q\x80b\0\x07N\x87\x82b\0\n\x7FV[\x82`@Qb\0\x10\xB2\x81b\0\x15,V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x85\x01\x80T\x80\x83Rb\0\x10\xD9` \x84\x01b\0\x0B\xE8V[\x90`\0\x91[\x81`\x07\x84\x01\x10b\0\x11[W\x93\x86`\x02\x97\x96\x94\x82\x94b\0\x11H\x94`\x01\x9B\x98T\x91\x84\x82\x82\x10b\0\rGW\x82\x82\x10b\0\r)W\x82\x82\x10b\0\r\x0BW\x82\x82\x10b\0\x0C\xEDW\x82\x82\x10b\0\x0C\xCFW\x82\x82\x10b\0\x0C\xB1W\x82\x82\x10b\0\x0C\x94WP\x10b\0\x0C~WP\x90P\x03\x82b\0\x15IV[\x83\x82\x01R\x81R\x01\x92\x01\x95\x01\x94\x90b\0\x10\x8BV[\x93\x94\x95P\x90\x91`\x01a\x01\0`\x08\x92b\0\x11\x87\x87T\x8D`\xE0b\0\r\x96\x85\x84\x83\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x94\x01\x92\x01\x90\x88\x95\x94\x93\x92b\0\x10\xDEV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCW`\x17Tb\0\x11\xBA\x81b\0\x16\x7FV[\x90`@\x92b\0\x11\xCD`@Q\x93\x84b\0\x15IV[\x81\x83R` \x80\x84\x01\x90`\x17\x83R\x7F\xC6$\xB6l\xC0\x13\x8B\x8F\xAB\xC2\t$\x7Fr\xD7X\xE1\xCF3CumT;\xAD\xBF$!+\xED\x8C\x15\x95\x83\x92[\x85\x84\x10b\0\x12\x17W`@Q\x80b\0\x07N\x89\x82b\0\x0EKV[\x81Q\x85\x91\x89T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x12\xD9W[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x12\xBEWP`\x01\x14b\0\x12zW[PPb\0\x12k\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x98\x01\x93\x01\x92\x96b\0\x11\xFFV[\x95Pb\0\x12\x8C\x8D`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x12\xAAWPP\x94\x90\x94\x01\x93b\0\x12k\x81b\0\x12YV[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x12\x90V[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x12k\x81b\0\x12YV[\x91`\x7F\x16\x91b\0\x121V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` b\0\x13\x03b\0\x18\x19V[`@Q\x90\x15\x15\x81R\xF3[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `\"T`@Q\x90\x81R\xF3[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x13T\x91\x82\x81R` \x80\x91\x01\x92`\x13`\0R\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90\x91`\0\x90[\x82\x82\x10b\0\x13\x97Wb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x13|V[4b\0\x06\x8AW` 6`\x03\x19\x01\x12b\0\x01\xCCW`\x1CT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15b\0\x06'W`\xE0`$\x91`@Q\x92\x83\x80\x92c\x06\x8B\xCD\x8D\x85\x1B\x82R`\x045`\x04\x83\x01RZ\xFA\x80\x15b\0\x06!W`\xC0b\0\x14)\x91b\0\x07N\x93`\0\x91b\0\x14CW[P\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x90V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R\x90\x81\x90` \x82\x01\x90V[b\0\x14j\x91P`\xE0=`\xE0\x11b\0\x14qW[b\0\x14a\x81\x83b\0\x15IV[\x81\x01\x90b\0\x18\xF8V[8b\0\x14\x1AV[P=b\0\x14UV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `\xFF`\x07T\x16`@Q\x90\x15\x15\x81R\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x06OW`@RV[`@\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OW`@RV[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0\x15\x81WV[`\0\x80\xFD[\x90``\x82R`\x06``\x83\x01Re\x0E\x8D\xEDl\xAD\xCB`\xD3\x1B`\x80\x83\x01R`\xA0` \x83\x01R`\x01`\xA0\x83\x01R`\x0B`\xFB\x1B`\xC0\x83\x01R`\x12`@`\xE0\x84\x01\x93\x01RV[`@Q=`\0\x82>=\x90\xFD[\x90``\x82R`\x06``\x83\x01RetokenY`\xD0\x1B`\x80\x83\x01R`\xA0` \x83\x01R`\x01`\xA0\x83\x01R`Y`\xF8\x1B`\xC0\x83\x01R`\x12`@`\xE0\x84\x01\x93\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81` \x91\x03\x12b\0\x01\xCCWQ\x80\x15\x15\x81\x03b\0\x15\x81W\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x06OW`\x05\x1B` \x01\x90V[\x90\x81T\x91b\0\x16\xA7\x83b\0\x16\x7FV[\x92`@\x91b\0\x16\xBA`@Q\x95\x86b\0\x15IV[\x81\x85R`\0\x90\x81R` \x80\x82 \x93\x82\x91\x90\x81\x88\x01[\x85\x84\x10b\0\x16\xE0WPPPPPPPV[\x81Q\x85\x91\x88T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x17\xA2W[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x17\x87WP`\x01\x14b\0\x17CW[PPb\0\x174\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x97\x01\x93\x01\x92\x95b\0\x16\xCFV[\x95Pb\0\x17U\x8C`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x17sWPP\x94\x90\x94\x01\x93b\0\x174\x81b\0\x17\"V[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x17YV[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x174\x81b\0\x17\"V[\x91`\x7F\x16\x91b\0\x16\xFAV[\x90`\x04\x91c\x06g\xF9\xD7`\xE4\x1B\x81Rb\0\x17\xD0\x82Q\x80\x93` \x86\x85\x01\x91\x01b\0\x07sV[\x01\x01\x90V[=\x15b\0\x18\x14W=\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11b\0\x06OW`@Q\x91b\0\x18\x08`\x1F\x82\x01`\x1F\x19\x16` \x01\x84b\0\x15IV[\x82R=`\0` \x84\x01>V[``\x90V[`\x07T`\x08\x1C`\xFF\x16\x15b\0\x187W`\x07T`\x08\x1C`\xFF\x16\x90V[\x90V[`\0sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0\x18YWP\x90V[`\0\x91P\x81\x90`@Q\x82\x81b\0\x18\x9A` \x82\x01\x90`@\x82\x01\x91sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x81R` e\x19\x98Z[\x19Y`\xD2\x1B\x91\x01RV[\x03b\0\x18\xAF`\x1F\x19\x91\x82\x81\x01\x85R\x84b\0\x15IV[b\0\x18\xD5`@Q\x91\x82b\0\x18\xC8` \x82\x01\x96\x87b\0\x17\xADV[\x03\x90\x81\x01\x83R\x82b\0\x15IV[Q\x92Z\xF1Pb\0\x184b\0\x18\xE8b\0\x17\xD5V[` \x80\x82Q\x83\x01\x01\x91\x01b\0\x16eV[\x90\x81`\xE0\x91\x03\x12b\0\x01\xCCW`@Q\x90`\xE0\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OWb\0\x19\x83\x91`\xC0\x91`@Rb\0\x196\x81b\0\x15lV[\x84Rb\0\x19F` \x82\x01b\0\x15lV[` \x85\x01Rb\0\x19Y`@\x82\x01b\0\x15lV[`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01b\0\x15lV[`\xC0\x82\x01R\x90V[`@\x80Qa\x13\x01\x80\x82\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x83\x82\x10\x83\x83\x11\x17b\0\x06OW\x83b\0\x19\xBFb\0\x1D \x93\x83\x85\x849b\0\x15\x86V[\x03`\0\x94\x85\xF0\x80\x15b\0\x06!W`\x1E\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x84Q\x91\x81\x83\x01\x83\x81\x10\x85\x82\x11\x17b\0\x06OW\x83\x92b\0\x1A\x0C\x92\x849b\0\x15\xD2V[\x03\x90\x83\xF0\x80\x15b\0\x06!W`\x1F\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x1AB\x91\x16b\0\x02\xA2V[\x80;\x15b\0\x06'W\x83Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0`$\x83\x01R\x91\x84\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1D\x08W[P`\x1FTb\0\x1A\x9F\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x81;\x15b\0\x06'W\x84Q\x90\x81R0`\x04\x82\x01Rh\x05k\xC7^-c\x10\0\0`$\x82\x01R\x90\x83\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xF1W[P`\x1ETb\0\x1A\xF5\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1FTb\0\x1B\x0C\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x84Q\x91a\x07\xA1\x90\x81\x84\x01\x92\x84\x84\x10\x86\x85\x11\x17b\0\x06OW\x84\x93b\0\x1BY\x93b\0\x9F\xE9\x869`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R``\x01\x90V[\x03\x90\x83\xF0\x80\x15b\0\x06!W`\x1D\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x82Q\x90a0)\x90\x81\x83\x01\x90\x81\x11\x83\x82\x10\x17b\0\x06OW\x82\x91b\x000!\x839\x03\x90\x82\xF0\x80\x15b\0\x06!W`\x1C\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x1B\xD7\x91\x16b\0\x02\xA2V[`\x1CT\x90\x92\x90b\0\x1B\xF1\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x92\x80;\x15b\0\x06'W\x81Qc\t^\xA7\xB3`\xE0\x1B\x80\x82R`\x01`\x01`\xA0\x1B\x03\x95\x90\x95\x16`\x04\x82\x01R`\0\x19`$\x82\x01R` \x94\x91\x85\x90\x82\x90`D\x90\x82\x90\x88\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xCFW[P`\x1FTb\0\x1CV\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1CTb\0\x1Cm\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x91\x81;\x15b\0\x06'W\x92Q\x92\x83R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x83\x01R`\0\x19`$\x83\x01R\x90\x91\x83\x91\x83\x91`D\x91\x83\x91\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xB2WPPV[\x81b\0\x1C\xCC\x92\x90=\x10b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[PV[b\0\x1C\xE9\x90\x85=\x87\x11b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[P8b\0\x1C>V[\x80b\0\x06eb\0\x1D\x01\x92b\0\x15\x17V[8b\0\x1A\xDDV[\x80b\0\x06eb\0\x1D\x18\x92b\0\x15\x17V[8b\0\x1A\x87V\xFE`\xE0`@\x90\x80\x82R4b\0\x04\x99WPb\0\x13\x01\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xE6V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04JW\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04DW\x82b\0\0V\x91\x85\x01b\0\x05ZV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04DW\x83\x91b\0\0u\x91\x84\x01b\0\x05ZV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04?W\x84Q\x94\x86\x86\x11b\0\x04)W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06~V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xD8W[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03pW\x89\x92b\0\x03dW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03PW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06~V[\x82\x81\x11b\0\x02\xFBW[P\x87\x91\x83\x11`\x01\x14b\0\x02\x97W\x88\x92b\0\x02\x8BW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06~V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02kWPP`\x01\x14b\0\x02+W[Pb\0\x01m\x92P\x03\x82b\0\x04\xE6V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02\x17WP\x83\x90RQ\x90 `\xC0Ra\x0CE\x90\x81b\0\x06\xBC\x829`\x80Q\x81a\x06\x84\x01R`\xA0Q\x81a\nM\x01R`\xC0Q\x81a\nt\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02RWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x028V[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xE4WPP\x84\x11b\0\x02\xCAW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xBCV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xA9V[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03FW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x037WPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x03'V[\x92P\x81\x92b\0\x03\x18V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xC1WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xA7W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x99V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x7FV[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x04\x1FW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\x10WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x01V[\x92P\x81\x92b\0\x03\xF4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\nV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04)W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x06%W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04)W` \x90`@Q\x92b\0\x05\x95\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xE6V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xD0W`\0[\x81\x81\x10b\0\x05\xBCWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xA6V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xB0W[` \x83\x10\x14b\0\x06\x9AWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\x8EV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003`\xA0`@\x90\x80\x82R4b\0\x01[WP`\x01\x80U\x80Qa\x11D\x80\x82\x01\x91`\x01`\x01`@\x1B\x03\x91\x82\x84\x11\x82\x85\x10\x17b\0\x01EWb\0\x1E\xE5\x829\x80`\0\x93\x03\x90\x83\xF0\x80\x15b\0\x01;W`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81\x90R\x80;\x15b\0\0\xE9W\x90\x82\x80\x92`\x84\x86Q\x80\x96\x81\x93c&lE\xBB`\xE1\x1B\x83R\x89`\x04\x84\x01R\x81`D\x84\x01R```$\x84\x01R\x81`d\x84\x01RZ\xF1\x80\x15b\0\0\xDFWb\0\0\xB8W[\x83Qa\x1D<\x90\x81b\0\x01\xA9\x829`\x80Q\x81\x81\x81a\x0Bj\x01Ra\x10\x08\x01R\xF3[\x82\x11b\0\0\xCBWP\x81R8\x80\x80b\0\0\x99V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x84Q=\x84\x82>=\x90\xFD[\x83QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x83Q=\x84\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\xE6W`@Q`\x1Fa)\x8A8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xD0W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0\x80WQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x90\x81\x90\x03a\0{W`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x90\x91\x17\x90U`@Qa(V\x90\x81a\x014\x829\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0CGW`\x005`\xE0\x1C\x80c\x0FAf\xB8\x14a\x01\\W\x80c%\th\xD9\x14a\x01WW\x80c0m\xB4k\x14a\x01RW\x80c3\"f\xF3\x14a\x01MW\x80c9(\xFF\x97\x14a\x01HW\x80c;M\x100\x14a\x01CW\x80cO\xD6|X\x14a\x01>W\x80cZ\x93\xB8\xCE\x14a\x019W\x80cb7V\x9F\x14a\x014W\x80c\x7F\x17@\x9C\x14a\x01/W\x80c\x81\xB5\xFA\xC2\x14a\x01*W\x80c\x90.\xCA\xA2\x14a\x01%W\x80c\xA8\xC6.v\x14a\x01 W\x80c\xB0\x9D\x04\xE5\x14a\x01\x1BW\x80c\xCB\x1FU2\x14a\x01\x16W\x80c\xCE\x15;\xF4\x14a\x01\x11W\x80c\xDE\xF1_\x92\x14a\x01\x0CW\x80c\xEC)\xD8\xE6\x14a\x01\x07W\x80c\xEE>\x8C\xFB\x14a\x01\x02W\x80c\xF2\xDEz{\x14a\0\xFDWc\xF3\r7\xF2\x03a\x0CGWa\x0C\x14V[a\x0B\xF8V[a\x0B\xC4V[a\x0B\xAEV[a\x0B=V[a\n;V[a\t\xF6V[a\t\xB2V[a\t\x89V[a\t`V[a\t\x0CV[a\x08\xACV[a\x08KV[a\x08&V[a\x07\xFDV[a\x07\xCBV[a\x057V[a\x04\xDAV[a\x04\xA3V[a\x04:V[a\x02\xAAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`$5\x81\x81\x11a\x03\xCFW6`#\x82\x01\x12\x15a\x03\xCAW\x80`\x04\x015\x91\x82\x11a\x03qW6`$\x83\x83\x01\x01\x11a\x03\x18Wa\x03\x14\x91`$a\x03\x04\x92\x01`\x045a\x0C\xAAV[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[a\x02QV[a\x02\x01V[a\x01\xB1V[a\x01aV[`\0[\x83\x81\x10a\x03\xF1WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01a\x03\xE1V[\x90` \x91a\x04\x1A\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01a\x03\xDEV[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90` a\x047\x92\x81\x81R\x01\x90a\x04\x01V[\x90V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`@Q`\x02` \x82\x01R`\x045`@\x82\x01R`$5``\x82\x01R``\x81Ra\x04u\x81a\n\xDEV[`@Q\x91\x82\x91` \x83R` \x83\x01\x90a\x04\x01V[``\x90`\x03\x19\x01\x12a\x03\xD4W`\x045\x90`$5\x90`D5\x90V[4a\x03\xD9W` a\x04\xD2a\x04\xB66a\x04\x89V[\x90a\x04\xC9a\x04\xC3\x84a\x10\x1CV[\x93a\x10\xF6V[\x92\x91\x90\x91a\x12\xA8V[`@Q\x90\x81R\xF3[4a\x03\xD9W` a\x04\xD2a\x04\xED6a\x04\x89V[\x90a\x04\xFAa\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x14\xD3V[\x80\x15\x15\x03a\x05\rWV[`\0\x80\xFD[\x90\x92`\x80\x92a\x047\x95\x94\x15\x15\x83R` \x83\x01R`@\x82\x01R\x81``\x82\x01R\x01\x90a\x04\x01V[4a\x03\xD9W``6`\x03\x19\x01\x12a\x03\xD4W`\x045`$5a\x05W\x81a\x05\x03V[`D5\x91a\x05ca\x0C\xD6V[\x91a\x05la\x0C\xD6V[\x92a\x05v\x83a\x10\xF6V[\x92\x90\x91\x93` \x94\x85\x83\x01\x93`@\x95\x86\x85\x01R\x84R\x82Ra\x05\x95\x86a\x10\x1CV[\x97\x85\x89\x86a\x05\xAF\x86Q\x88Qa\x05\xA9\x8Da\x10\x1CV[\x91a\x16lV[\x94\x15a\x07EWa\x06\r\x93a\x05\xFFa\x05\xFAa\x06A\x99\x98\x95a\x05\xF4\x86a\x05\xDDa\x06\x06\x97a\x06\x1A\x9C\x99\x01Q\x87a \xAAV[\x92a\x05\xEB\x8DQ\x8BQ\x90a \xD6V[\x91\x01Q\x90a\x16\xAEV[\x90a \xAAV[a\r\x1CV[\x93Qa\r?V[\x8ARa\r?V[\x80\x85\x89\x01R\x87Q\x87a\x11\xEFV[\x90a\x068a\x06-\x86\x89\x01\x93\x80\x85Ra\r\x1CV[\x80\x84R\x82Q\x11a\r\xE6V[Q\x90Q\x90a\r\xD9V[\x94[\x84Q\x83\x86\x01\x80Q\x84\x88\x01Q\x85Q\x96\x87\x01\x93\x84R` \x84\x01\x91\x90\x91R`@\x83\x01R\x90a\x06{\x90\x85\x90``\x01\x03`\x1F\x19\x81\x01\x86R\x85a\x0B\x1BV[`\0Ta\x06\x9E\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07@W\x84`\xC0\x91a\x06\xC9\x97\x86Q\x80\x99\x81\x94\x82\x93c\r\x17\xA7\xC7`\xE3\x1B\x84R0`\x04\x85\x01a\x0E\xC7V[\x03\x91Z\xFA\x94\x85\x15a\x07;W`\0\x95a\x06\xFBW[P\x90a\x06\xF0\x91a\x03\x14\x95\x96Q\x90Q\x90a\x18nV[\x90Q\x94\x85\x94\x85a\x05\x12V[a\x03\x14\x95P\x90a\x07&a\x06\xF0\x93\x92`\xC0=`\xC0\x11a\x074W[a\x07\x1E\x81\x83a\x0B\x1BV[\x81\x01\x90a\x0E\x90V[PPPPP\x95P\x90\x91a\x06\xDCV[P=a\x07\x14V[a\x0E\xEBV[a\x0E=V[a\x07\xA9\x92Pa\x07\xC5\x96a\x07\x90a\x07\xB1\x95a\x07\x89a\x05\xFA\x8Aa\x05\xF4\x88a\x07\x81a\x07wa\x07\x9C\x9Aa\x07\xBC\x9F\x9C\x01Q\x88a \xAAV[\x93Q\x89Q\x90a \xD6V[\x90Q\x90a\x16\xAEV[\x92Qa\r?V[\x92\x8A\x8D\x01\x93\x84Ra\r?V[\x90\x81\x88\x8C\x01RQ\x89a\x0E\xF7V[\x80\x89Ra\r\x1CV[\x80\x88R\x82Q\x11a\rLV[Q\x85Q\x90a\r\xD9V[\x94a\x06CV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4W` a\x04\xD2`\x045a\x07\xF6a\x07\xF0\x82a\x10\x1CV[\x91a\x10\xF6V[P\x90a\x18nV[4a\x03\xD9W` a\x04\xD2a\x08\x106a\x04\x89V[\x90a\x08\x1Da\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x18\x93V[4a\x03\xD9W` a\x04\xD2a\x08Ea\x08<6a\x04\x89V[\x91\x92\x90\x92a\x10\x1CV[\x91a\x1A.V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x08\x87`\x045a\x03\x14a\x08\x8Ea\x08\x7Fa\x08t\x84a\x10\xF6V[\x91\x90P`$5a\x1A[V[\x94\x90\x93a\x10\x1CV[\x84\x84a\x1DlV[\x92`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4W`\x045a\x08\xE7a\x03\x14a\x08\xEEa\x08\xDFa\x08\xD5\x85a\x10\xF6V[\x91P`$5a\x1A\x88V[\x93\x90\x94a\x10\x1CV[\x83\x85a\x1A.V[\x91`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4W`\x80a\t*`\x045a\x10\x1CV[a\t^`@Q\x80\x92``\x90\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[\xF3[4a\x03\xD9W` a\x04\xD2a\ts6a\x04\x89V[\x90a\t\x80a\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x1A\xAFV[4a\x03\xD9W`\x006`\x03\x19\x01\x12a\x03\xD4W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`@Q`\x01` \x82\x01R`\x045`@\x82\x01R`@\x81Ra\x04u\x81a\n\xFFV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x05\rWV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`\x045a\n\x16\x81a\t\xE5V[`@\x80Q`\x03` \x82\x01R`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x82\x82\x01R\x81Ra\x04u\x81a\n\xFFV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14a\nZ`\x045a\x10\xF6V[`@\x80Q\x93\x84R` \x84\x01\x92\x90\x92R\x90\x82\x01R\x90\x81\x90``\x82\x01\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[a\n\xC8V[``\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[4a\x03\xD9W`\xC06`\x03\x19\x01\x12a\x03\xD4W`\x806`C\x19\x01\x12a\x0B\xA9Wa\x03\x14a\x0B\x9D`@Qa\x0Bl\x81a\n\xDEV[`D5\x81R`d5` \x82\x01R`\x845`@\x82\x01R`\xA45a\x0B\x8D\x81a\t\xE5V[``\x82\x01R`$5`\x045a\x1C,V[`@Q\x91\x82\x91\x82a\x04&V[a\nwV[4a\x03\xD9W` a\x04\xD2a\x05\xA9a\x08<6a\x04\x89V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x08\x87`\x045a\x03\x14a\x08\x8Ea\x08\x7Fa\x0B\xED\x84a\x10\xF6V[\x91\x90P`$5a\x1A\x88V[4a\x03\xD9W` a\x04\xD2a\x0C\x0Ea\x08<6a\x04\x89V[\x91a\x1DlV[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4W`\x045a\x08\xE7a\x03\x14a\x08\xEEa\x08\xDFa\x0C=\x85a\x10\xF6V[\x91P`$5a\x1A[V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x81``\x91\x81\x01\x03\x12a\x03\xD4Wa\x0C\xC3a\x047\x92a\x10\x1CV[\x90`@\x81\x015\x90` \x81\x015\x905a\x12\x15V[`@Q\x90``\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@R`\0`@\x83\x82\x81R\x82` \x82\x01R\x01RV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90`\x01\x82\x01\x80\x92\x11a\r*WV[a\r\x06V[\x90a\x03\xE8\x91\x82\x01\x80\x92\x11a\r*WV[\x91\x90\x82\x01\x80\x92\x11a\r*WV[\x15a\rSWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: x reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x03\x91\x82\x11a\r*WV[\x90a\x03\xE8\x91\x82\x03\x91\x82\x11a\r*WV[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\r*WV[\x91\x90\x82\x03\x91\x82\x11a\r*WV[\x15a\r\xEDWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: y reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xC0\x91\x03\x12a\x03\xD4W\x81Qa\x0E\xA7\x81a\x05\x03V[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[a\x047\x93\x92``\x92`\x01\x80`\xA0\x1B\x03\x16\x82R` \x82\x01R\x81`@\x82\x01R\x01\x90a\x04\x01V[`@Q=`\0\x82>=\x90\xFD[\x91a\x08Ea\x047\x93a\x10\x1CV[\x91\x90` \x92\x83\x81\x83\x03\x12a\x03\xD4W\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x82\x11a\x03\xCFW\x01\x82`\x1F\x82\x01\x12\x15a\x03\xCAW\x80Q\x91\x82\x11a\n\xFAW`@Q\x92a\x0FQ`\x1F\x84\x01`\x1F\x19\x16\x87\x01\x85a\x0B\x1BV[\x82\x84R\x85\x83\x83\x01\x01\x11a\x0FnW\x84\x83\x94\x95a\x047\x94\x01\x91\x01a\x03\xDEV[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\x80\x91\x03\x12a\x0B\xA9W`@Qa\x0F\xDB\x81a\n\xDEV[``\x80\x82\x94\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R\x01Q\x91a\x10\x04\x83a\t\xE5V[\x01RV[\x90`\x80\x82\x82\x03\x12a\x03\xD4Wa\x047\x91a\x0F\xC3V[``\x90`@Qa\x10+\x81a\n\xDEV[`\0\x80\x82R` \x82\x01\x81\x90R`@\x82\x01\x81\x90R\x92\x01\x82\x90R\x81Ta\x10Y\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07@W`@Qc\xDC\x17\x83U`\xE0\x1B\x81R`\x04\x81\x01\x92\x90\x92R\x82\x90\x82\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07;W\x82a\x047\x93\x92a\x10\xA3W[PP` \x80\x82Q\x83\x01\x01\x91\x01a\x10\x08V[a\x10\xBF\x92P=\x80\x91\x83>a\x10\xB7\x81\x83a\x0B\x1BV[\x81\x01\x90a\x0F\x04V[8\x80a\x10\x92V[\x90\x81` \x91\x03\x12a\x03\xD4WQa\x047\x81a\t\xE5V[\x90\x81``\x91\x03\x12a\x03\xD4W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`\0T\x90\x91\x90a\x11\x10\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07@W` `\x04\x91`@Q\x92\x83\x80\x92c+\xEE\x84\xF1`\xE2\x1B\x82RZ\xFA\x90\x81\x15a\x07;W`\0\x91a\x11\xC0W[P`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07@W`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x93\x90\x93R``\x90\x83\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07;W`\0\x80\x93`\0\x93a\x11\x89W[P\x92\x91\x90V[\x91\x93PPa\x11\xAF\x91P``=``\x11a\x11\xB9W[a\x11\xA7\x81\x83a\x0B\x1BV[\x81\x01\x90a\x10\xDBV[\x92\x90\x92\x918a\x11\x83V[P=a\x11\x9DV[a\x11\xE2\x91P` =` \x11a\x11\xE8W[a\x11\xDA\x81\x83a\x0B\x1BV[\x81\x01\x90a\x10\xC6V[8a\x11>V[P=a\x11\xD0V[\x91a\x0C\x0Ea\x047\x93a\x10\x1CV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\r*WV[\x92` a\x05\xEB\x84a\x128a\x120a\x05\xF4\x96\x97a\x12>\x99a$\x11V[\x85Q\x90a\x16\xAEV[\x95a$\x11V[g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x81\x01\x90\x81\x13`\x01\x16a\r*W\x90V[\x90\x81R` \x80\x82\x01\x92\x90\x92R`@\x80\x82\x01\x93\x90\x93R``\x80\x82\x01\x94\x90\x94R\x84Q`\x80\x82\x01R\x90\x84\x01Q`\xA0\x82\x01R\x90\x83\x01Q`\xC0\x82\x01R\x91\x01Q`\x01`\x01`\xA0\x1B\x03\x16`\xE0\x82\x01Ra\x01\0\x01\x90V[V[\x90\x92\x91\x85Q` \x87\x01Q`@\x88\x01Qa\x12\xC0\x90a\r\xA3V[\x91a\x12\xCB\x87\x85a$\x11V[a\x12\xD5\x82\x82a\x16\xAEV[\x92a\x12\xDF\x91a\x16\xAEV[\x89Q\x85\x89\x85\x81a\x12\xEF\x85\x8Da$TV[\x90a\x12\xF9\x91a$TV[\x90a\x13\x03\x91a$TV[\x92a\x13\r\x90a$3V[a\x13\x16\x90a\r\xB9V[\x90a\x13 \x91a\r?V[\x90a\x13*\x91a$TV[a\x133\x86a\r\xA3V[a\x13<\x91a$TV[\x92a\x13F\x8Aa\r/V[\x90a\x13P\x90a\x14zV[a\x13Y\x91a\x16\xAEV[\x91a\x13c\x90a$3V[a\x13l\x86a\r\xA3V[a\x13u\x91a$TV[a\x13\x7F\x90\x89a\r?V[\x92a\x13\x89\x91a\r\xD9V[\x91a\x13\x93\x91a$TV[\x89Qa\x13\x9E\x90a\r\xA3V[a\x13\xA7\x90a#\xF2V[a\x13\xB0\x91a\x16\xAEV[a\x13\xB9\x91a$TV[\x91\x88Qa\x13\xC5\x90a\r\xA3V[a\x13\xCE\x88a\r/V[\x92a\x13\xD9\x89\x89a$TV[\x90a\x13\xE3\x91a$TV[\x91a\x13\xED\x86a$3V[\x90a\x13\xF7\x90a\r\xA3V[a\x14\0\x91a$TV[\x92a\x14\n\x91a$TV[\x91a\x14\x14\x91a\r?V[a\x14\x1D\x91a$TV[\x90a\x14'\x84a\x14zV[\x91a\x141\x91a$\x11V[a\x14:\x91a\x14\xB7V[`\0\x13a\x14oWa\x047\x95a\x14j\x93a\x14\\\x92`@Q\x96\x87\x95` \x87\x01a\x12WV[\x03`\x1F\x19\x81\x01\x83R\x82a\x0B\x1BV[a\x1D\xBAV[PPPPPP`\0\x90V[`\x01`\xFF\x1B\x81\x14a\r*W`\0\x03\x90V[\x90\x81a\x03\xE8\x01\x91\x82\x12`\x01\x16a\r*WV[\x90\x81g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r*WV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\r*WV[\x94\x93\x92\x90\x92\x84Q\x90` \x86\x01Q`@\x87\x01Qa\x14\xEE\x90a\r\xA3V[\x92a\x14\xF9\x87\x87a$\x11V[a\x15\x03\x82\x82a\x16\xAEV[\x92a\x15\r\x91a\x16\xAEV[\x88Q\x87\x89\x85\x81a\x15\x1D\x85\x8Ca$TV[\x90a\x15'\x91a$TV[\x90a\x151\x91a$TV[\x92a\x15<\x90\x88a$TV[a\x15F\x90\x88a\r\xD9V[\x90a\x15P\x91a\r?V[\x90a\x15Z\x91a$TV[a\x15c\x87a\r\xA3V[a\x15l\x91a$TV[\x92a\x15w\x8A\x87a\r?V[\x90a\x15\x81\x90a\x14zV[a\x15\x8A\x91a\x16\xAEV[\x91a\x15\x95\x90\x86a$TV[a\x15\x9E\x87a\r\xA3V[a\x15\xA7\x91a$TV[a\x15\xB1\x90\x88a\r?V[\x92a\x15\xBB\x91a\r\xD9V[\x91a\x15\xC5\x91a$TV[\x88Qa\x15\xD0\x90a\r\xA3V[a\x15\xD9\x90a#\xF2V[a\x15\xE2\x91a\x16\xAEV[a\x15\xEB\x91a$TV[\x96Qa\x15\xF6\x90a\r\xA3V[\x93a\x16\x01\x87\x84a\r?V[\x96a\x16\x0B\x91a$TV[\x90a\x16\x15\x91a$TV[\x93a\x16\x1F\x91a$TV[\x90a\x16)\x90a\r\xA3V[a\x162\x91a$TV[\x92a\x16<\x91a$TV[\x91a\x16F\x91a\r?V[a\x16O\x91a$TV[\x91a\x16Y\x90a\x14zV[\x91a\x16c\x91a$\x11V[a\x047\x91a\x14\xB7V[a\x047\x92\x91` a\x16\x82a\x05\xF4\x93\x85Q\x90a\x16\xAEV[\x93\x01Q\x90a\x16\xAEV[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\r*W\x81\x84\x05\x14\x90\x15\x17\x15a\r*WV[a\x18[a\x047\x92}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84a\x18i\x93a\x16\xE4`\0\x82\x13a!RV[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\x17\0\x82a$\x94V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1Da\x16\x8BV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a!\x8AV[a\x18\x8D\x90a\x18\x85a\x047\x94\x93` \x85\x01Q\x90a$\x11V[\x92Q\x90a$\x11V[\x90a$\x11V[\x90\x92\x91\x85Q`@\x87\x01Qg\r\xE0\xB6\xB3\xA7d\0\0`\0\x82\x82\x03\x92\x12\x81\x83\x12\x81\x16\x91\x83\x13\x90\x15\x16\x17a\r*Wa\x18\xC6\x83a\x14\x8BV[a\x18\xCF\x83a\x14\x9DV[a\x18\xD8\x91a\x16\xAEV[\x90\x82a\x18\xE4\x85\x89a#3V[\x90a\x18\xEE\x91a\x16\xAEV[a\x18\xF7\x81a#QV[\x92a\x19\x01\x83a\x14\x9DV[a\x19\x0B\x90\x85a#zV[a\x19\x15\x90\x89a\x11\xFCV[\x91\x82\x91a\x19!\x88a\x14\x8BV[a\x19+\x90\x88a#zV[\x93a\x195\x91a#zV[a\x19>\x87a#\x14V[a\x19G\x91a\x16\xAEV[\x92a\x19Q\x87a\x14\x9DV[a\x19[\x90\x8Ba#zV[\x91\x88a\x19f\x89a#QV[\x90a\x19p\x91a\x14\xB7V[a\x19y\x91a#zV[a\x19\x82\x86a\x14\x9DV[a\x19\x8B\x91a#zV[\x92a\x19\x95\x91a#zV[\x92a\x19\xA0\x90\x89a#zV[\x91a\x19\xAA\x91a\x11\xFCV[a\x19\xB3\x91a#zV[a\x19\xBC\x91a\x14\xB7V[\x92a\x19\xC6\x85a\x14\x8BV[a\x19\xCF\x91a#zV[\x91a\x19\xD9\x87a\x14zV[\x91a\x19\xE3\x90a\x14\x9DV[a\x19\xEC\x91a#zV[a\x19\xF5\x91a\x14\xB7V[a\x19\xFE\x91a#zV[a\x1A\x07\x91a#3V[`\0\x13a\x14oWa\x047\x95a\x1A)\x93a\x14\\\x92`@Q\x96\x87\x95` \x87\x01a\x12WV[a\x1E\xDFV[a\x1ANa\x047\x93\x92a\x1AHa\x1AU\x93` \x86\x01Q\x90a\x16\xAEV[\x90a \xD6V[\x91Qa!\x06V[\x90a\x16\xAEV[\x92\x91\x90a\x1Aqa\x1Ak\x82\x84a \xD6V[\x85a \xAAV[\x93\x81\x03\x90\x81\x11a\r*W\x92\x81\x03\x90\x81\x11a\r*W\x90V[\x92\x91\x90a\x1A\x98a\x1Ak\x82\x84a \xD6V[\x93\x81\x01\x80\x91\x11a\r*W\x92\x81\x01\x80\x91\x11a\r*W\x90V[\x92\x93\x94\x90\x91\x94`@\x82Q\x92\x01Q\x93g\r\xE0\xB6\xB3\xA7d\0\0`\0\x86\x82\x03\x96\x12\x81\x87\x12\x81\x16\x91\x87\x13\x90\x15\x16\x17a\r*W\x82\x87\x94a\x1A\xEA\x86\x85a\x14\xB7V[a\x1A\xF3\x83a\x14\x9DV[a\x1A\xFC\x91a\x16\xAEV[\x95a\x1B\x06\x91a#3V[\x90a\x1B\x10\x91a\x16\xAEV[\x93a\x1B\x1B\x85\x84a#zV[\x94a\x1B%\x87a\x14\x9DV[a\x1B/\x90\x87a#zV[a\x1B9\x90\x89a\x11\xFCV[\x92\x83\x92a\x1BF\x8B\x87a\x14\xB7V[a\x1BP\x90\x88a#zV[\x94a\x1BZ\x91a#zV[a\x1Bc\x87a#\x14V[a\x1Bl\x91a\x16\xAEV[\x93a\x1Bv\x87a\x14\x9DV[a\x1B\x80\x90\x8Ba#zV[\x92\x8Ba\x1B\x8C\x89\x89a#zV[\x90a\x1B\x96\x91a\x14\xB7V[a\x1B\x9F\x91a#zV[a\x1B\xA8\x8Aa\x14\x9DV[a\x1B\xB1\x91a#zV[\x93a\x1B\xBB\x91a#zV[\x93a\x1B\xC5\x91a#zV[\x91a\x1B\xCF\x91a\x11\xFCV[a\x1B\xD8\x91a#zV[a\x1B\xE1\x91a\x14\xB7V[\x95a\x1B\xEB\x91a\x14\xB7V[a\x1B\xF4\x91a#zV[\x92a\x1B\xFE\x90a\x14zV[\x91a\x1C\x08\x90a\x14\x9DV[a\x1C\x11\x91a#zV[a\x1C\x1A\x91a\x14\xB7V[a\x1C#\x91a#zV[a\x047\x91a#3V[\x92\x91\x90\x83a\x1CGa\x1CL\x92a\x1CG` \x86\x01Q\x86Q\x90a$\x11V[a$TV[\x90a\x1CX\x81\x83\x86a\x16lV[\x93a\x1Ce\x82\x86\x85\x84a\x12\x15V[\x85\x90`\0\x80\x82\x12\x15a\x1D.W[\x80\x82\x12a\x1D\x10WPa\x1C\xB7a\x1D\x04\x92a\x047\x96\x97\x98\x86\x93[a\x1C\x9E`@Q\x98\x89\x92\x8C\x8A` \x86\x01a#\xA9V[\x03\x96a\x1C\xB2`\x1F\x19\x98\x89\x81\x01\x83R\x82a\x0B\x1BV[a\x1F\xB6V[\x81Q`@\x80\x84\x01Q``\x94\x85\x01Q\x82Q` \x81\x01\x98\x90\x98R\x91\x87\x01\x99\x90\x99R\x92\x85\x01\x91\x90\x91R`\x80\x84\x01R`\xA0\x83\x01\x95\x90\x95R`\x01`\x01`\xA0\x1B\x03\x90\x94\x16`\xC0\x82\x01R\x92\x83\x90`\xE0\x82\x01\x90V[\x03\x90\x81\x01\x83R\x82a\x0B\x1BV[\x96a\x1D\x1B\x91Pa$uV[\x95a\x1D(\x84\x88\x87\x86a\x12\x15V[\x90a\x1CrV[\x96\x91\x96[\x80\x82\x13a\x1DNWPa\x1C\xB7a\x047\x95\x96\x97a\x1D\x04\x93\x86\x93a\x1C\x8AV[\x96a\x1DY\x91Pa!(V[\x95a\x1Df\x84\x88\x87\x86a\x12\x15V[\x90a\x1D2V[` a\x1D\x85a\x047\x94\x93a\x1AHa\x1AU\x94\x86Q\x90a\x16\xAEV[\x92\x01Qa!\x06V[\x91\x90a\x01\0\x83\x82\x03\x12a\x03\xD4W\x82Q\x92` \x81\x01Q\x92a\x047`@\x83\x01Q\x93`\x80``\x85\x01Q\x94\x01a\x0F\xC3V[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a\x1E\xBEWa\x1D\xD6\x81a%\x06V[a\x1D\xE0\x85\x83a&_V[`\0a\x1D\xEC\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1D\xFD\x85\x96\x95a\r\xC9V[`\x01\x94`\0\x91\x86\x80[a\x1E\x17W[PPPPPPPP\x90PV[\x15a\x1EzW[P\x85\x96\x97\x98P\x80\x91a\x1E8a\x1E2\x8B\x88a\r?V[`\x01\x1C\x90V[\x99a\x1EC\x8B\x87a&_V[\x90\x83a\x1EO\x87\x84a\x16\x8BV[\x13a\x1EnWPP\x89\x92[\x87a\x1Ed\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1E\x06V[\x8B\x97P\x90\x94P\x92a\x1EYV[\x86\x10\x80a\x1E\x94W[\x15a\x1E\x8DW\x88a\x1E\x1DV[\x80\x80a\x1E\x0BV[Pa\x01\0\x82\x10a\x1E\x82V[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81Ra\x03\xE8`\x04\x82\x01R`$\x81\x01\x85\x90R`D\x90\xFD[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a\x1E\xBEWa\x1E\xFB\x81a&\x80V[a\x1F\x05\x85\x83a'\xCBV[`\0a\x1F\x11\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1F\"\x85\x96\x95a\r\xC9V[`\x01\x94`\0\x91\x86\x80[a\x1F;WPPPPPPPP\x90PV[\x15a\x1F\x98W[P\x85\x96\x97\x98P\x80\x91a\x1FVa\x1E2\x8B\x88a\r?V[\x99a\x1Fa\x8B\x87a'\xCBV[\x90\x83a\x1Fm\x87\x84a\x16\x8BV[\x13a\x1F\x8CWPP\x89\x92[\x87a\x1F\x82\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1F+V[\x8B\x97P\x90\x94P\x92a\x1FwV[\x86\x10\x80a\x1F\xABW[\x15a\x1E\x8DW\x88a\x1FAV[Pa\x01\0\x82\x10a\x1F\xA0V[`\0\x93\x92\x91\x84\x91\x83\x82\x11a \x8AWa\x1F\xCE\x82\x82a'\xECV[a\x1F\xD8\x85\x83a'\xECV[`\0a\x1F\xE4\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1F\xF6\x83\x86\x97\x96a\r\xD9V[`\x01\x94`\0\x91\x86\x80[a \x0FWPPPPPPPP\x90PV[\x15a lW[P\x85\x96\x97\x98P\x80\x91a *a\x1E2\x8B\x88a\r?V[\x99a 5\x8B\x87a'\xECV[\x90\x83a A\x87\x84a\x16\x8BV[\x13a `WPP\x89\x92[\x87a V\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1F\xFFV[\x8B\x97P\x90\x94P\x92a KV[\x86\x10\x80a \x7FW[\x15a\x1E\x8DW\x88a \x15V[Pa\x01\0\x82\x10a tV[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x81\x01\x85\x90R`D\x90\xFD[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x05\rW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x0F\xFF\xFF\xFF\xFF\x04`\x01\x01\x90V[a\x03\xE9\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rW`\x01a\x03\xE8`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x15a!YWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a#\x0EWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\"\xDAWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[P`\0\x90V[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14\x82\x15\x15\x16\x15a\x05\rW\x05\x90V[a\x03\xE8\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x15\x82\x84\x05\x82\x14\x17`\0\x19\x90\x92\x10`\x01`\xFF\x1B\x90\x91\x13\x17\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x12\xA6\x93``\x92\x96\x95\x93`\xE0\x83\x01\x97\x83R` \x83\x01R`@\x82\x01R\x01\x90``\x90\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x05\rW\x04\x90V[a\x03\xE8\x90\x80\x82\x02\x91\x82\x04\x14`\x01\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[a\x03\xE7\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rWa\x03\xE8\x90\x04\x90V[a$\x9F\x81\x15\x15a!RV[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x80Q\x81\x01` \x01\x90` \x01\x90a%\x1B\x91a\x1D\x8DV[\x92\x91\x90\x83Q` \x85\x01Q`@\x86\x01Qa%3\x90a\r\xA3V[\x91a%>\x86\x86a$\x11V[a%H\x82\x82a\x16\xAEV[\x92a%R\x91a\x16\xAEV[\x87Q\x86\x88\x85\x81a%b\x85\x8Ba$TV[\x90a%l\x91a$TV[\x90a%v\x91a$TV[\x92a%\x80\x90a$3V[a%\x89\x90a\r\xB9V[\x90a%\x93\x91a\r?V[\x90a%\x9D\x91a$TV[a%\xA6\x86a\r\xA3V[a%\xAF\x91a$TV[\x92a%\xB9\x89a\r/V[\x90a%\xC3\x90a\x14zV[a%\xCC\x91a\x16\xAEV[\x91a%\xD6\x90a$3V[a%\xDF\x86a\r\xA3V[a%\xE8\x91a$TV[a%\xF2\x90\x87a\r?V[\x92a%\xFC\x91a\r\xD9V[\x91a&\x06\x91a$TV[\x87Qa&\x11\x90a\r\xA3V[a&\x1A\x90a#\xF2V[a&#\x91a\x16\xAEV[a&,\x91a$TV[\x95Qa&7\x90a\r\xA3V[\x92a&A\x86a\r/V[\x95a&K\x91a$TV[\x90a&U\x91a$TV[\x92a\x16\x1F\x90a$3V[\x90a&va\x047\x92` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[\x94\x93\x92\x90\x92a\x14\xD3V[a&\x93\x90` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[`@\x81\x95\x93\x95\x94\x92\x94Q\x91\x01Q\x92g\r\xE0\xB6\xB3\xA7d\0\0`\0\x85\x82\x03\x95\x12\x81\x86\x12\x81\x16\x91\x86\x13\x90\x15\x16\x17a\r*W\x81\x86\x93a&\xCD\x85a\x14\x8BV[a&\xD6\x83a\x14\x9DV[a&\xDF\x91a\x16\xAEV[\x94a&\xE9\x91a#3V[\x90a&\xF3\x91a\x16\xAEV[\x92a&\xFD\x84a#QV[\x93a'\x07\x86a\x14\x9DV[a'\x11\x90\x86a#zV[a'\x1B\x90\x88a\x11\xFCV[\x92\x83\x92a''\x8Aa\x14\x8BV[a'1\x90\x87a#zV[\x94a';\x91a#zV[a'D\x86a#\x14V[a'M\x91a\x16\xAEV[\x93a'W\x86a\x14\x9DV[a'a\x90\x8Aa#zV[\x92\x8Aa'l\x88a#QV[\x90a'v\x91a\x14\xB7V[a'\x7F\x91a#zV[a'\x88\x89a\x14\x9DV[a'\x91\x91a#zV[\x93a'\x9B\x91a#zV[\x93a'\xA5\x91a#zV[\x91a'\xAF\x91a\x11\xFCV[a'\xB8\x91a#zV[a'\xC1\x91a\x14\xB7V[\x94a\x1B\xEB\x90a\x14\x8BV[\x90a'\xE2a\x047\x92` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[\x94\x93\x92\x90\x92a\x1A\xAFV[\x80Q\x81\x01\x91`\xE0\x82\x84\x03\x12a\x03\xD4Wa\x047\x92a(\x1A` \x84\x01Q\x93`\x80` `@\x83\x01Q\x94\x01\x91\x01a\x0F\xC3V[\x92a\x12\x15V\xFE\xA2dipfsX\"\x12 ?\x01\xAF\x86\xF2SJ\x1AP\xDB\x15\x94\x12\xAB\xAF\xF8r\x89\x07\x08\xBBf\t\xAA\x0E\xAB\x15To\x8C\xDA\xE9dsolcC\0\x08\x16\x003`\xA0\x80`@R4a\0\xF1W`@Q`\x1Fa\x16\x158\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xDBW\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0\x8BWQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0\x86W`\x80R`@Qa\x14\xD6\x90\x81a\x01?\x829`\x80Q\x81\x81\x81a\x04\x89\x01R\x81\x81a\x07\xCD\x01R\x81\x81a\t\x81\x01Ra\n\xDF\x01R\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0BvW`\x005`\xE0\x1C\x80b.RK\x14a\0\x8BW\x80c\x1E\xDBq\xE5\x14a\0\x86W\x80ch\xBD>8\x14a\0\x81W\x80cs\xCB-\x03\x14a\0|W\x80c\x8A\x04\xBD\xD5\x14a\0wW\x80c\xAC\xAD)\x89\x14a\0rW\x80c\xAF\xBA\x13\xC4\x14a\0mWc\xDC\x17\x83U\x03a\x0BvWa\x0B\x0EV[a\n\xC9V[a\thV[a\t.V[a\x07\xB1V[a\x04'V[a\x03\x9AV[4a\x01\x07W`@6`\x03\x19\x01\x12a\x01\x02W`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\0\xF5a\0\xD2a\0\xC4` \x936\x90`\x04\x01a\x03EV[\x83\x80\x82Q\x83\x01\x01\x91\x01a\x0B\xD9V[\x90a\0\xEFa\0\xE1`\x045a\r%V[\x86\x80\x82Q\x83\x01\x01\x91\x01a\x0B\xF4V[\x92a\x0E\x0EV[`@Q\x90\x81R\xF3[a\x01\xA7V[a\x01WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[a\x02PV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x92\x91\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x02\x82W`@Q\x91a\x02\xD3`\x1F\x82\x01`\x1F\x19\x16` \x01\x84a\x02\x87V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x02\xF0W\x82\x81` \x93\x84`\0\x96\x017\x01\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x80`\x1F\x83\x01\x12\x15a\x03cW\x81` a\x03`\x935\x91\x01a\x02\xA9V[\x90V[a\x01\xF7V[\x90`@Qa\x03u\x81a\x02fV[```\x03\x82\x94\x80T\x84R`\x01\x81\x01T` \x85\x01R`\x02\x81\x01T`@\x85\x01R\x01T\x91\x01RV[4a\x04\x0CW` 6`\x03\x19\x01\x12a\x01\x02W`\x045`\0R`\0` R`\xC0`@`\0 a\x03\xC6\x81a\x03hV[\x90`\x04\x81\x01T\x90`\x05`\x01\x80`\xA0\x1B\x03\x91\x01T\x16\x90```@Q\x93\x80Q\x85R` \x81\x01Q` \x86\x01R`@\x81\x01Q`@\x86\x01R\x01Q``\x84\x01R`\x80\x83\x01R`\xA0\x82\x01R\xF3[a\x01\x07V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04\"WV[`\0\x80\xFD[4a\x04\x0CW``6`\x03\x19\x01\x12a\x01\x02Wa\x04C`\x045a\x04\x11V[`$5`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\x04f\x906\x90`\x04\x01a\x03EV[\x90a\x04p\x81a\r%V[\x90a\x04\x86\x82Q\x92` \x80\x80\x95\x83\x01\x01\x91\x01a\x0B\xF4V[\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x06\x9FW`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x84\x90R\x90``\x90\x82\x90`$\x90\x82\x90Z\xFA\x94\x85\x15a\x06\x9AW`\0\x90\x81\x92\x82\x97a\x06aW[P\x80\x84\x80a\x04\xFF\x93Q\x83\x01\x01\x91\x01a\x0B\xD9V[\x94\x91\x95\x90\x97\x87\x87\x85\x81\x11`\0\x14a\x05\xC8W\x93a\x05T\x86\x94a\x05N\x86a\x05Ia\x05v\x9B\x97a\x05Da\x05a\x98`@a\x05;a\x05m\x9Fa\x05g\x9Fa\x0C\xAEV[\x91\x01Q\x90a\x11\xEEV[a\x11\xEEV[a\x12\x1AV[Pa\r%V[\x80Q\x81\x01\x82\x01\x91\x01a\x0B\xF4V[\x91a\x0E_V[\x83a\x0C\xCDV[\x93\x82\x86\x85a\x0E\x0EV[\x93\x84`\x13\x19\x12\x92\x83a\x05\xBDW[a\x05\xB9\x93\x94`@Q\x96\x87\x96\x87\x92`\xA0\x94\x91\x97\x96\x95\x92`\xC0\x85\x01\x98\x15\x15\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x01RV[\x03\x90\xF3[`\x14\x86\x12\x93Pa\x05\x83V[PP\x91\x92\x90\x93\x80\x89\x11`\0\x14a\x06\x03Wa\x05aa\x05m\x94a\x05Ta\x05v\x97a\x05N\x85a\x05I\x8F\x99\x8Fa\x05D\x90`@a\x05;\x86a\x05g\x9Fa\x0C\xAEV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7Finvalid swap: inputs x and y hav`D\x82\x01Roe the same sign!`\x80\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x96Pa\x04\xFF\x92Pa\x06\x8B\x91P``=``\x11a\x06\x93W[a\x06\x83\x81\x83a\x02\x87V[\x81\x01\x90a\x0B\xD9V[\x96\x90\x92a\x04\xECV[P=a\x06yV[a\x0C\x8CV[a\x0C9V[\x90```\x03\x19\x83\x01\x12a\x01\x02W`\x045a\x06\xBD\x81a\x04\x11V[\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\0\xFDW\x80`#\x83\x01\x12\x15a\x03cW\x81`\x04\x015\x93\x84\x11a\x07XW`$\x84\x83\x01\x01\x11a\x06\xFFW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[4a\x04\x0CWa\x07\xBF6a\x06\xA4V[\x91\x92P`\x01`\x01`\xA0\x1B\x03\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x163\x03a\t\x1CW\x81`\xC0\x91\x81\x01\x03\x12a\x01\x02W\x805\x91` \x82\x015\x91`@\x81\x015\x94``\x82\x015\x90`\xA0\x83\x015\x92a\x08$\x84a\x04\x11V[g\r\xE0\xB6\xB3\xA7d\0\0\x83\x10\x15a\t\nWa\x08\xC8\x94a\x08\xC0\x94`\x80a\x08\xAC\x93a\x08\xB1\x96a\x08Z\x87`\0R`\0` R`@`\0 \x90V[U\x015`\x04a\x08s\x86`\0R`\0` R`@`\0 \x90V[\x01U\x16`\x05a\x08\x8C\x84`\0R`\0` R`@`\0 \x90V[\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90UV[a\r%V[` \x80\x82Q\x83\x01\x01\x91\x01a\x0B\xF4V[\x84\x83\x85a\x0E\x0EV[\x92\x83`\x13\x19\x12\x91\x82a\x08\xFFW[`@\x80Q\x93\x15\x15\x84R` \x84\x01\x95\x90\x95R\x93\x82\x01\x92\x90\x92R``\x81\x01\x92\x90\x92R`\x80\x82\x01R`\xA0\x90\xF3[`\x14\x85\x12\x92Pa\x08\xD5V[`@Qc\xE8\xA3\x8Aa`\xE0\x1B\x81R`\x04\x90\xFD[`@QchS\xCB\xA7`\xE0\x1B\x81R`\x04\x90\xFD[4a\x04\x0CW``a\t>6a\x06\xA4V[\x81\x80\x94P\x94\x92\x94\x01\x03\x12a\x01\x02W\x805\x90a\x08\xC8a\x08\xC0a\x08\xB1`@` \x85\x015\x94\x015\x95a\r%V[4a\x04\x0CWa\tv6a\x06\xA4V[\x92`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x163\x03a\t\x1CWa\t\xDEa\t\xD2`\x05a\t\xC4\x87`\0R`\0` R`@`\0 \x90V[\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x91\x16\x03a\n\xB7Wa\t\xF1\x83\x82\x01\x82a\x0C\xF0V[a\t\xFA\x81a\r\x05V[`\x01\x81\x03a\n3WPa\n\x1Da\n\x18a\n.\x92`\x04\x94\x956\x91a\x02\xA9V[a\x0FPV[\x92`\0R`\0` R`@`\0 \x90V[\x01U[\0[a\n<\x81a\r\x05V[`\x02\x81\x03a\nxWP\x90a\n`a\n[a\ns\x93a\n1\x956\x91a\x02\xA9V[a\x0E\xA6V[\x92\x90\x91`\0R`\0` R`@`\0 \x90V[a\x0E\xCEV[\x80a\n\x84`\x03\x92a\r\x05V[\x03a\n\xA5Wa\x08\x8Ca\n\x1Da\n\xA0`\x05\x93a\n1\x966\x91a\x02\xA9V[a\x0E~V[`@Qc#]+=`\xE0\x1B\x81R`\x04\x90\xFD[`@Qcn\xDA\xEF/`\xE1\x1B\x81R`\x04\x90\xFD[4a\x04\x0CW`\x006`\x03\x19\x01\x12a\x01\x02W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x04\x0CW` \x80`\x03\x196\x01\x12a\x01\x02Wa\x0B+`\x045a\r%V[\x90`@\x80Q\x91` \x83R\x83Q\x91\x82` \x85\x01R`\0[\x83\x81\x10a\x0BcW\x84`@\x81\x86`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x81\x01\x03\x01\x90\xF3[\x85\x81\x01\x83\x01Q\x85\x82\x01\x83\x01R\x82\x01a\x0BAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81``\x91\x03\x12a\x01\x02W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[\x90\x81`\x80\x91\x03\x12a\x01\x02W```@Q\x91a\x0C\x0E\x83a\x02fV[\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x01Qa\x0C1\x81a\x04\x11V[``\x82\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[`@Q=`\0\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0C\xBBWV[a\x0C\x98V[\x91\x90\x82\x01\x80\x92\x11a\x0C\xBBWV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x0C\xBBWV[`\x04\x11\x15a\x04\"WV[\x90\x81` \x91\x03\x12a\x01\x02W5a\x03`\x81a\x0C\xE6V[`\x04\x11\x15a\r\x0FWV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@\x80Qa\r2\x81a\x02fV[`\0\x91\x82\x82R` \x82\x01\x93\x83\x85R\x81\x83\x01\x84\x81R``\x84\x01\x90\x85\x82R\x82\x86R\x85` Ra\rha\rc\x85\x88 a\x03hV[a\x0F\x85V[\x80\x86Rg\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x03\x90\x81\x11a\x0C\xBBW\x84a\x03`\x97a\r\xC5\x95a\r\xB8\x94`\x05\x94a\x0E\0\x9CR\x81\x83R\x82` R`\x04\x84\x84 \x01T\x90R\x81R\x80` R \x01`\x01\x80`\xA0\x1B\x03\x90T\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90RV[Q\x92\x83\x91` \x83\x01\x91\x90\x91```\x80\x82\x01\x93\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[\x03`\x1F\x19\x81\x01\x83R\x82a\x02\x87V[\x92` a\x0E7\x84a\x0E1a\x0E)a\x0E@\x96\x97a\x0EF\x99a\x12JV[\x85Q\x90a\x10.V[\x95a\x12JV[\x91\x01Q\x90a\x10.V[\x90a\x11\xEEV[g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x81\x01\x90\x81\x13`\x01\x16a\x0C\xBBW\x90V[a\x03`\x92\x91` a\x0Eua\x0E@\x93\x85Q\x90a\x10.V[\x93\x01Q\x90a\x10.V[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x0E\x9B` `@\x93\x01Qa\x0C\xE6V[\x01Qa\t\xD2\x81a\x04\x11V[``\x81\x80Q\x81\x01\x03\x12a\x01\x02Wa\x0E\xC0` \x82\x01Qa\x0C\xE6V[```@\x82\x01Q\x91\x01Q\x90\x91V[\x91\x90B\x82\x11\x15a\x0F>Wa\x0E\xE4a\rc\x84a\x03hV[\x90\x81\x84UB`\x03\x85\x01UB\x83\x03\x91\x83\x83\x11a\x0C\xBBWa\x0F\x02\x91a\x0C\xCDV[B\x83\x14a\x0F(W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\x0C\xBBW`\x02\x92`\x01\x85\x01U\x05\x91\x01UV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`@Qcf\xF1\x02\xED`\xE1\x1B\x81R`\x04\x90\xFD[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x0Fm` `@\x93\x01Qa\x0C\xE6V[\x01Q\x90V[\x81\x81\x02\x92\x91\x81\x15\x91\x84\x04\x14\x17\x15a\x0C\xBBWV[``\x81\x01Q\x90` \x81\x01Q\x80\x83\x14a\x10\x04W\x80B\x11`\0\x14a\x0F\xFCW\x91[\x82\x03\x91\x82\x11a\x0C\xBBW`@\x81\x01\x90\x81Q`\0\x81\x13`\0\x14a\x0F\xD6WPa\x03`\x92a\x0F\xD0\x91Q\x92Q\x90a\x0FrV[\x90a\x0C\xC0V[\x90Q\x91P`\x01`\xFF\x1B\x81\x14a\x0C\xBBWa\x03`\x92a\x0F\xF6\x91`\0\x03\x90a\x0FrV[\x90a\x0C\xAEV[PB\x91a\x0F\xA3V[P\x90PQ\x90V[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\x0C\xBBW\x81\x84\x05\x14\x90\x15\x17\x15a\x0C\xBBWV[a\x11\xDBa\x03`\x92}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84a\x11\xE9\x93a\x10d`\0\x82\x13a\x12lV[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\x10\x80\x82a\x14.V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1Da\x10\x0BV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x12\xA4V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\"W`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x04\"W`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\"W\x04\x90V[\x15a\x12sWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a\x14(Wh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x13\xF4We\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[P`\0\x90V[a\x149\x81\x15\x15a\x12lV[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V\xFE\xA2dipfsX\"\x12 [\xFF\x04\xB2O\xE5B\xF6\xEB\x8C\x12\x9C)\xE7I\xF2\x13\xF3LQ/\x9AH\x99Pf\x93\xE6\xE348\xACdsolcC\0\x08\x16\x003`\x80`@\x90\x80\x82R4a\x01\x06WP\x80Q`\x1Fa\x07\xA18\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xF0W\x80\x84\x92``\x94\x87R\x839\x81\x01\x03\x12a\0\xA1Wa\0O\x81a\x01SV[\x90\x82a\0]` \x83\x01a\x01SV[\x91\x01Q\x91`\x01\x80`\xA0\x1B\x03\x19\x913\x83`\0T\x16\x17`\0U`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x83`\x01T\x16\x17`\x01U\x16\x90`\x02T\x16\x17`\x02U`\x03UQa\x064\x90\x81a\x01m\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x01gWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003\xA2dipfsX\"\x12 \x89G\xCC\xF5\xE4\x90\xBF#\xA7\xAD\xE7++\xF6\x7Ft\xE0\xD4gqM\xA0\x9A?\t'm\xBFa\xFD\xDA\x12dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static G3MSETUP_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10b\0\x14\x9EW`\x005`\xE0\x1C\x80c\n\x92T\xE4\x14b\0\x01\x1AW\x80c\x1E\xD7\x83\x1C\x14b\0\x01\x14W\x80c*\xDE8\x80\x14b\0\x01\x0EW\x80c>^<#\x14b\0\x01\x08W\x80c?r\x86\xF4\x14b\0\x01\x02W\x80cb\n&\x07\x14b\0\0\xFCW\x80cf\xD9\xA9\xA0\x14b\0\0\xF6W\x80c\x85\"l\x81\x14b\0\0\xF0W\x80c\x91j\x17\xC6\x14b\0\0\xEAW\x80c\xB5P\x8A\xA9\x14b\0\0\xE4W\x80c\xBAAO\xA6\x14b\0\0\xDEW\x80c\xE0\xD7\xD0\xE9\x14b\0\0\xD8W\x80c\xE2\x0C\x9Fq\x14b\0\0\xD2W\x80c\xE2\x14\x85\xAD\x14b\0\0\xCCWc\xFAv&\xD4\x03b\0\x14\x9EWb\0\x14yV[b\0\x13\xB8V[b\0\x13-V[b\0\x13\rV[b\0\x12\xE4V[b\0\x11\x98V[b\0\x10)V[b\0\x0E\xC9V[b\0\x0B=V[b\0\n[V[b\0\t\xD0V[b\0\tEV[b\0\x08\x8BV[b\0\x06\xD7V[b\0\x01\xD2V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x91\x03\x12b\0\x01\xCCWV[b\0\x01pV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCWb\0\x01\xF0b\0\x19\x8BV[`@\x80Q\x90a\x13\x01\x80\x83\x01\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x80\x83\x10\x85\x84\x11\x17b\0\x06OW\x80b\0\x02&b\0\x1D \x94\x84\x86\x849b\0\x15\x86V[\x03\x90\x86\xF0\x80\x15b\0\x06!W`\x1E\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x82Q\x91\x81\x83\x01\x83\x81\x10\x86\x82\x11\x17b\0\x06OW\x83\x92b\0\x02q\x92\x849b\0\x15\xD2V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1F\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x02\xAE\x91\x16[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15b\0\x06'W\x81Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0`$\x83\x01R\x91\x85\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06sW[P`\x1FTb\0\x03\x0B\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x81;\x15b\0\x06'W\x82Q\x90\x81R0`\x04\x82\x01Rh\x05k\xC7^-c\x10\0\0`$\x82\x01R\x90\x84\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06UW[P`\x1ETb\0\x03a\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1FTb\0\x03x\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x82Q\x91a\x07\xA1\x90\x81\x84\x01\x92\x84\x84\x10\x87\x85\x11\x17b\0\x06OW\x84\x93b\0\x03\xC5\x93b\0\x9F\xE9\x869`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R``\x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1D\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x80Qa0)\x80\x82\x01\x82\x81\x10\x85\x82\x11\x17b\0\x06OW\x82\x91b\x000!\x839\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1C\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x82\x17\x90Ub\0\x04@\x90b\0\x02\xA2V[\x81Q\x90a\x16\x15\x80\x83\x01\x91\x83\x83\x10\x86\x84\x11\x17b\0\x06OW\x83\x92b\0\x04v\x92b\0\x89\xD4\x859`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W` \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x82\x17\x81U\x92\x90b\0\x04\xAD\x90b\0\x02\xA2V[\x82Q\x91a)\x8A\x80\x84\x01\x92\x90\x91\x83\x11\x84\x84\x10\x17b\0\x06OW\x83\x92b\0\x04\xE4\x92b\0`J\x859`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`!\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x05\x1A\x91\x16b\0\x02\xA2V[`\x1CT\x90\x91\x90b\0\x054\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x91\x80;\x15b\0\x06'W\x81Qc\t^\xA7\xB3`\xE0\x1B\x80\x82R`\x01`\x01`\xA0\x1B\x03\x94\x90\x94\x16`\x04\x82\x01R`\0\x19`$\x82\x01R\x90\x84\x90\x82\x90`D\x90\x82\x90\x89\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06-W[P`\x1FTb\0\x05\x96\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1CTb\0\x05\xAD\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x80;\x15b\0\x06'W\x91Q\x92\x83R`\x01`\x01`\xA0\x1B\x03\x16`\x04\x83\x01R`\0\x19`$\x83\x01R\x82\x90\x82\x90`D\x90\x82\x90\x87\x90Z\xF1\x80\x15b\0\x06!Wb\0\x05\xEEW\x82\x80\xF3[\x81b\0\x06\x12\x92\x90=\x10b\0\x06\x19W[b\0\x06\t\x81\x83b\0\x15IV[\x81\x01\x90b\0\x16eV[P8\x80\x82\x80\xF3[P=b\0\x05\xFDV[b\0\x15\xC6V[b\0\x16\x12V[b\0\x06G\x90\x84=\x86\x11b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[P8b\0\x05~V[b\0\x15\x01V[\x80b\0\x06eb\0\x06l\x92b\0\x15\x17V[\x80b\0\x01\xC0V[8b\0\x03IV[\x80b\0\x06eb\0\x06\x83\x92b\0\x15\x17V[8b\0\x02\xF3V[b\0\x01 V[` \x90` `@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10b\0\x06\xB9WPPPP\x90V[\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01b\0\x06\xAAV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x14T\x91\x82\x81R` \x80\x91\x01\x92`\x14`\0R\x7F\xCEm{R\x82\xBD\x9A6a\xAE\x06\x1F\xEE\xD1\xDB\xDANR\xAB\x07;\x1F\x92\x85\xBEn\x15]\x9C8\xD4\xEC\x91`\0\x90[\x82\x82\x10b\0\x07RWb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[`@Q\x91\x82\x91\x82b\0\x06\x90V[\x03\x90\xF3[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x07&V[`\0[\x83\x81\x10b\0\x07\x87WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x07vV[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01`\x05\x94\x83`@\x86`\x05\x1B\x85\x01\x01\x97\x01\x95`\0\x80\x94[\x87\x86\x10b\0\x07\xD6WPPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x80\x97\x98\x99`?\x19\x83\x82\x03\x01\x87R\x8AQ\x90\x82\x87\x82\x01\x92`\x01\x80`\xA0\x1B\x03\x81Q\x16\x83R\x01Q\x91\x87\x84\x83\x01R\x82Q\x80\x91R``\x90\x84\x82\x84\x01\x92\x82\x8A\x1B\x85\x01\x01\x94\x01\x92\x87[\x82\x81\x10b\0\x08CWPPPPP\x90\x80`\x01\x92\x9B\x01\x96\x01\x96\x01\x94\x97\x96\x95\x93\x92\x91\x90b\0\x07\xC2V[\x91\x93\x95\x80\x80`\x01\x93\x95\x97`_\x19\x87\x82\x03\x01\x89R\x89Qb\0\x08o\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x07sV[`\x1F\x80\x19\x91\x01\x16\x01\x01\x97\x01\x95\x01\x91\x01\x91\x8C\x95\x94\x93\x91\x92b\0\x08\x1DV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x1BTb\0\x08\xAC\x81b\0\x16\x7FV[`@\x91b\0\x08\xBE`@Q\x92\x83b\0\x15IV[\x80\x82R`\x1B`\0\x90\x81R` \x7F:\xD8\xAAO\x87TC#\xA9\xD1\xE5\xDD\x90/@\xC3VRzyUhq\x13\xDB_\x9A\x85\xADW\x9D\xC1\x81\x85\x01[\x84\x84\x10b\0\t\x07W`@Q\x80b\0\x07N\x88\x82b\0\x07\x98V[`\x02\x83`\x01\x92\x89Qb\0\t\x1A\x81b\0\x15,V[\x84\x80`\xA0\x1B\x03\x86T\x16\x81Rb\0\t2\x85\x87\x01b\0\x16\x98V[\x83\x82\x01R\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x08\xEFV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x16T\x91\x82\x81R` \x80\x91\x01\x92`\x16`\0R\x7F\xD83\x14}}\xC3U\xBAE\x9F\xC7\x88\xF6i\xE5\x8C\xFA\xF9\xDC%\xDD\xCD\x07\x02\xE8}i\xC7\xB5\x12B\x89\x91`\0\x90[\x82\x82\x10b\0\t\xAFWb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\t\x94V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x15T\x91\x82\x81R` \x80\x91\x01\x92`\x15`\0R\x7FU\xF4H\xFD\xEA\x98\xC4\xD2\x9E\xB3@u~\xF0\xA6l\xD0=\xBB\x958\x90\x8Aj\x81\xD9`&\xB7\x1E\xC4u\x91`\0\x90[\x82\x82\x10b\0\n:Wb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\n\x1FV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `@Qf\n\xA8{\xEES\x80\0\x81R\xF3[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01\x82`@\x85`\x05\x1B\x84\x01\x01\x96\x01\x94`\0\x80\x93[\x86\x85\x10b\0\n\xB9WPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x80\x96\x97\x98`?\x19\x83\x82\x03\x01\x86R\x89Q\x82``\x81\x88\x85\x01\x93`\x01\x80`\xA0\x1B\x03\x81Q\x16\x86R\x01Q\x93\x88\x83\x82\x01R\x84Q\x80\x94R\x01\x92\x01\x90\x85\x90[\x80\x82\x10b\0\x0B\x18WPPP\x90\x80`\x01\x92\x9A\x01\x95\x01\x95\x01\x93\x96\x95\x94\x92\x91\x90b\0\n\xA6V[\x82Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x8A\x94\x93\x84\x01\x93\x90\x92\x01\x91`\x01\x91\x90\x91\x01\x90b\0\n\xF5V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x19Tb\0\x0B^\x81b\0\x16\x7FV[b\0\x0Bm`@Q\x91\x82b\0\x15IV[\x81\x81R`\x19`\0\x90\x81R\x91` \x7F\x94I\x98'>G{IQD\xFB\x87\x94\xC9\x14\x19\x7F<\xCBF\xBE)\0\xF4i\x8F\xD0\xEFt<\x96\x95\x81\x84\x01[\x83\x86\x10b\0\x0B\xB7W`@Q\x80b\0\x07N\x87\x82b\0\n\x7FV[\x82`@Qb\0\x0B\xC6\x81b\0\x15,V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x85\x01\x80T\x80\x83Rb\0\x0B\xF4` \x84\x01[\x92`\0R` `\0 \x90V[\x90`\0\x91[\x81`\x07\x84\x01\x10b\0\rjW\x93\x86`\x02\x97\x96\x94\x82\x94b\0\x0Ck\x94`\x01\x9B\x98T\x91\x84\x82\x82\x10b\0\rGW[\x82\x82\x10b\0\r)W[\x82\x82\x10b\0\r\x0BW[\x82\x82\x10b\0\x0C\xEDW[\x82\x82\x10b\0\x0C\xCFW[\x82\x82\x10b\0\x0C\xB1W[\x82\x82\x10b\0\x0C\x94W[P\x10b\0\x0C~W[P\x90P\x03\x82b\0\x15IV[\x83\x82\x01R\x81R\x01\x92\x01\x95\x01\x94\x90b\0\x0B\x9FV[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x01\x86\x908b\0\x0C`V[\x83\x81\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x8D\x91\x01\x93\x01\x84b\0\x0CXV[`\x01`\x01`\xE0\x1B\x03\x19`@\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0COV[`\x01`\x01`\xE0\x1B\x03\x19``\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0CFV[`\x01`\x01`\xE0\x1B\x03\x19`\x80\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C=V[`\x01`\x01`\xE0\x1B\x03\x19`\xA0\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C4V[`\x01`\x01`\xE0\x1B\x03\x19`\xC0\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C+V[\x84b\0\r`\x8F\x93\x96\x86`\xE0\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x93\x01\x84b\0\x0C\"V[\x93\x94\x95P\x90\x91`\x01a\x01\0`\x08\x92b\0\x0E:\x87T\x8D`\xE0b\0\r\x96\x85\x84\x83\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[`\x01`\x01`\xE0\x1B\x03\x19`\xC0\x84\x81\x1B\x82\x16\x84\x88\x01R`\xA0\x85\x81\x1B\x83\x16`@\x89\x01R\x91\x93b\0\x0E)\x92\x90\x91\x85\x91\x87\x91\x90b\0\x0E\x17\x90b\0\x0E\0\x8C\x86\x86``\x92`\x80\x90b\0\r\xEF\x85\x82\x01\x85\x85\x85\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x92\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[`\x01`\x01`\xE0\x1B\x03\x19`@\x85\x90\x1B\x86\x16\x16\x90\x8C\x01RV[\x89\x01\x92\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x84\x01\x91\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x94\x01\x92\x01\x90\x88\x95\x94\x93\x92b\0\x0B\xF9V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x83\x01\x92\x81`@\x84`\x05\x1B\x83\x01\x01\x95\x01\x93`\0\x91[\x84\x83\x10b\0\x0E\x80WPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x84\x80\x80`\x01\x93`?\x19\x86\x82\x03\x01\x87R\x8AQb\0\x0E\xAE\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x07sV[`\x1F\x01`\x1F\x19\x16\x01\x01\x98\x01\x96\x95\x94\x91\x90\x91\x01\x92\x01\x90b\0\x0EoV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCW`\x18Tb\0\x0E\xEB\x81b\0\x16\x7FV[\x90`@\x92b\0\x0E\xFE`@Q\x93\x84b\0\x15IV[\x81\x83R` \x80\x84\x01\x90`\x18\x83R\x7F\xB1=-v\xD1\xF4\xB7\xBE\x83H\x82\xE4\x10\xB3\xE3\xA8\xAF\xAFi\xF86\0\xAE$\xDB5C\x91\xD27\x8D.\x95\x83\x92[\x85\x84\x10b\0\x0FHW`@Q\x80b\0\x07N\x89\x82b\0\x0EKV[\x81Q\x85\x91\x89T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x10\x1EW[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x0F\xEFWP`\x01\x14b\0\x0F\xABW[PPb\0\x0F\x9C\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x98\x01\x93\x01\x92\x96b\0\x0F0V[\x95Pb\0\x0F\xBD\x8D`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x0F\xDBWPP\x94\x90\x94\x01\x93b\0\x0F\x9C\x81b\0\x0F\x8AV[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x0F\xC1V[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x0F\x9C\x81b\0\x0F\x8AV[cNH{q`\xE0\x1B\x8BR`\"`\x04R`$\x8B\xFD[\x91`\x7F\x16\x91b\0\x0FbV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x1ATb\0\x10J\x81b\0\x16\x7FV[b\0\x10Y`@Q\x91\x82b\0\x15IV[\x81\x81R`\x1A`\0\x90\x81R\x91` \x7F\x05|8J}\x1CT\xF3\xA1\xB2\xE5\xE6{&\x17\xB8\"O\xDF\xD1\xEAr4\xEE\xA5s\xA6\xFFf_\xF6>\x81\x84\x01[\x83\x86\x10b\0\x10\xA3W`@Q\x80b\0\x07N\x87\x82b\0\n\x7FV[\x82`@Qb\0\x10\xB2\x81b\0\x15,V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x85\x01\x80T\x80\x83Rb\0\x10\xD9` \x84\x01b\0\x0B\xE8V[\x90`\0\x91[\x81`\x07\x84\x01\x10b\0\x11[W\x93\x86`\x02\x97\x96\x94\x82\x94b\0\x11H\x94`\x01\x9B\x98T\x91\x84\x82\x82\x10b\0\rGW\x82\x82\x10b\0\r)W\x82\x82\x10b\0\r\x0BW\x82\x82\x10b\0\x0C\xEDW\x82\x82\x10b\0\x0C\xCFW\x82\x82\x10b\0\x0C\xB1W\x82\x82\x10b\0\x0C\x94WP\x10b\0\x0C~WP\x90P\x03\x82b\0\x15IV[\x83\x82\x01R\x81R\x01\x92\x01\x95\x01\x94\x90b\0\x10\x8BV[\x93\x94\x95P\x90\x91`\x01a\x01\0`\x08\x92b\0\x11\x87\x87T\x8D`\xE0b\0\r\x96\x85\x84\x83\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x94\x01\x92\x01\x90\x88\x95\x94\x93\x92b\0\x10\xDEV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCW`\x17Tb\0\x11\xBA\x81b\0\x16\x7FV[\x90`@\x92b\0\x11\xCD`@Q\x93\x84b\0\x15IV[\x81\x83R` \x80\x84\x01\x90`\x17\x83R\x7F\xC6$\xB6l\xC0\x13\x8B\x8F\xAB\xC2\t$\x7Fr\xD7X\xE1\xCF3CumT;\xAD\xBF$!+\xED\x8C\x15\x95\x83\x92[\x85\x84\x10b\0\x12\x17W`@Q\x80b\0\x07N\x89\x82b\0\x0EKV[\x81Q\x85\x91\x89T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x12\xD9W[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x12\xBEWP`\x01\x14b\0\x12zW[PPb\0\x12k\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x98\x01\x93\x01\x92\x96b\0\x11\xFFV[\x95Pb\0\x12\x8C\x8D`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x12\xAAWPP\x94\x90\x94\x01\x93b\0\x12k\x81b\0\x12YV[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x12\x90V[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x12k\x81b\0\x12YV[\x91`\x7F\x16\x91b\0\x121V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` b\0\x13\x03b\0\x18\x19V[`@Q\x90\x15\x15\x81R\xF3[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `\"T`@Q\x90\x81R\xF3[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x13T\x91\x82\x81R` \x80\x91\x01\x92`\x13`\0R\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90\x91`\0\x90[\x82\x82\x10b\0\x13\x97Wb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x13|V[4b\0\x06\x8AW` 6`\x03\x19\x01\x12b\0\x01\xCCW`\x1CT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15b\0\x06'W`\xE0`$\x91`@Q\x92\x83\x80\x92c\x06\x8B\xCD\x8D\x85\x1B\x82R`\x045`\x04\x83\x01RZ\xFA\x80\x15b\0\x06!W`\xC0b\0\x14)\x91b\0\x07N\x93`\0\x91b\0\x14CW[P\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x90V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R\x90\x81\x90` \x82\x01\x90V[b\0\x14j\x91P`\xE0=`\xE0\x11b\0\x14qW[b\0\x14a\x81\x83b\0\x15IV[\x81\x01\x90b\0\x18\xF8V[8b\0\x14\x1AV[P=b\0\x14UV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `\xFF`\x07T\x16`@Q\x90\x15\x15\x81R\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x06OW`@RV[`@\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OW`@RV[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0\x15\x81WV[`\0\x80\xFD[\x90``\x82R`\x06``\x83\x01Re\x0E\x8D\xEDl\xAD\xCB`\xD3\x1B`\x80\x83\x01R`\xA0` \x83\x01R`\x01`\xA0\x83\x01R`\x0B`\xFB\x1B`\xC0\x83\x01R`\x12`@`\xE0\x84\x01\x93\x01RV[`@Q=`\0\x82>=\x90\xFD[\x90``\x82R`\x06``\x83\x01RetokenY`\xD0\x1B`\x80\x83\x01R`\xA0` \x83\x01R`\x01`\xA0\x83\x01R`Y`\xF8\x1B`\xC0\x83\x01R`\x12`@`\xE0\x84\x01\x93\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81` \x91\x03\x12b\0\x01\xCCWQ\x80\x15\x15\x81\x03b\0\x15\x81W\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x06OW`\x05\x1B` \x01\x90V[\x90\x81T\x91b\0\x16\xA7\x83b\0\x16\x7FV[\x92`@\x91b\0\x16\xBA`@Q\x95\x86b\0\x15IV[\x81\x85R`\0\x90\x81R` \x80\x82 \x93\x82\x91\x90\x81\x88\x01[\x85\x84\x10b\0\x16\xE0WPPPPPPPV[\x81Q\x85\x91\x88T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x17\xA2W[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x17\x87WP`\x01\x14b\0\x17CW[PPb\0\x174\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x97\x01\x93\x01\x92\x95b\0\x16\xCFV[\x95Pb\0\x17U\x8C`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x17sWPP\x94\x90\x94\x01\x93b\0\x174\x81b\0\x17\"V[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x17YV[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x174\x81b\0\x17\"V[\x91`\x7F\x16\x91b\0\x16\xFAV[\x90`\x04\x91c\x06g\xF9\xD7`\xE4\x1B\x81Rb\0\x17\xD0\x82Q\x80\x93` \x86\x85\x01\x91\x01b\0\x07sV[\x01\x01\x90V[=\x15b\0\x18\x14W=\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11b\0\x06OW`@Q\x91b\0\x18\x08`\x1F\x82\x01`\x1F\x19\x16` \x01\x84b\0\x15IV[\x82R=`\0` \x84\x01>V[``\x90V[`\x07T`\x08\x1C`\xFF\x16\x15b\0\x187W`\x07T`\x08\x1C`\xFF\x16\x90V[\x90V[`\0sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0\x18YWP\x90V[`\0\x91P\x81\x90`@Q\x82\x81b\0\x18\x9A` \x82\x01\x90`@\x82\x01\x91sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x81R` e\x19\x98Z[\x19Y`\xD2\x1B\x91\x01RV[\x03b\0\x18\xAF`\x1F\x19\x91\x82\x81\x01\x85R\x84b\0\x15IV[b\0\x18\xD5`@Q\x91\x82b\0\x18\xC8` \x82\x01\x96\x87b\0\x17\xADV[\x03\x90\x81\x01\x83R\x82b\0\x15IV[Q\x92Z\xF1Pb\0\x184b\0\x18\xE8b\0\x17\xD5V[` \x80\x82Q\x83\x01\x01\x91\x01b\0\x16eV[\x90\x81`\xE0\x91\x03\x12b\0\x01\xCCW`@Q\x90`\xE0\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OWb\0\x19\x83\x91`\xC0\x91`@Rb\0\x196\x81b\0\x15lV[\x84Rb\0\x19F` \x82\x01b\0\x15lV[` \x85\x01Rb\0\x19Y`@\x82\x01b\0\x15lV[`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01b\0\x15lV[`\xC0\x82\x01R\x90V[`@\x80Qa\x13\x01\x80\x82\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x83\x82\x10\x83\x83\x11\x17b\0\x06OW\x83b\0\x19\xBFb\0\x1D \x93\x83\x85\x849b\0\x15\x86V[\x03`\0\x94\x85\xF0\x80\x15b\0\x06!W`\x1E\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x84Q\x91\x81\x83\x01\x83\x81\x10\x85\x82\x11\x17b\0\x06OW\x83\x92b\0\x1A\x0C\x92\x849b\0\x15\xD2V[\x03\x90\x83\xF0\x80\x15b\0\x06!W`\x1F\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x1AB\x91\x16b\0\x02\xA2V[\x80;\x15b\0\x06'W\x83Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0`$\x83\x01R\x91\x84\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1D\x08W[P`\x1FTb\0\x1A\x9F\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x81;\x15b\0\x06'W\x84Q\x90\x81R0`\x04\x82\x01Rh\x05k\xC7^-c\x10\0\0`$\x82\x01R\x90\x83\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xF1W[P`\x1ETb\0\x1A\xF5\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1FTb\0\x1B\x0C\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x84Q\x91a\x07\xA1\x90\x81\x84\x01\x92\x84\x84\x10\x86\x85\x11\x17b\0\x06OW\x84\x93b\0\x1BY\x93b\0\x9F\xE9\x869`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R``\x01\x90V[\x03\x90\x83\xF0\x80\x15b\0\x06!W`\x1D\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x82Q\x90a0)\x90\x81\x83\x01\x90\x81\x11\x83\x82\x10\x17b\0\x06OW\x82\x91b\x000!\x839\x03\x90\x82\xF0\x80\x15b\0\x06!W`\x1C\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x1B\xD7\x91\x16b\0\x02\xA2V[`\x1CT\x90\x92\x90b\0\x1B\xF1\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x92\x80;\x15b\0\x06'W\x81Qc\t^\xA7\xB3`\xE0\x1B\x80\x82R`\x01`\x01`\xA0\x1B\x03\x95\x90\x95\x16`\x04\x82\x01R`\0\x19`$\x82\x01R` \x94\x91\x85\x90\x82\x90`D\x90\x82\x90\x88\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xCFW[P`\x1FTb\0\x1CV\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1CTb\0\x1Cm\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x91\x81;\x15b\0\x06'W\x92Q\x92\x83R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x83\x01R`\0\x19`$\x83\x01R\x90\x91\x83\x91\x83\x91`D\x91\x83\x91\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xB2WPPV[\x81b\0\x1C\xCC\x92\x90=\x10b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[PV[b\0\x1C\xE9\x90\x85=\x87\x11b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[P8b\0\x1C>V[\x80b\0\x06eb\0\x1D\x01\x92b\0\x15\x17V[8b\0\x1A\xDDV[\x80b\0\x06eb\0\x1D\x18\x92b\0\x15\x17V[8b\0\x1A\x87V\xFE`\xE0`@\x90\x80\x82R4b\0\x04\x99WPb\0\x13\x01\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xE6V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04JW\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04DW\x82b\0\0V\x91\x85\x01b\0\x05ZV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04DW\x83\x91b\0\0u\x91\x84\x01b\0\x05ZV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04?W\x84Q\x94\x86\x86\x11b\0\x04)W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06~V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xD8W[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03pW\x89\x92b\0\x03dW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03PW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06~V[\x82\x81\x11b\0\x02\xFBW[P\x87\x91\x83\x11`\x01\x14b\0\x02\x97W\x88\x92b\0\x02\x8BW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06~V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02kWPP`\x01\x14b\0\x02+W[Pb\0\x01m\x92P\x03\x82b\0\x04\xE6V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02\x17WP\x83\x90RQ\x90 `\xC0Ra\x0CE\x90\x81b\0\x06\xBC\x829`\x80Q\x81a\x06\x84\x01R`\xA0Q\x81a\nM\x01R`\xC0Q\x81a\nt\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02RWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x028V[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xE4WPP\x84\x11b\0\x02\xCAW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xBCV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xA9V[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03FW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x037WPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x03'V[\x92P\x81\x92b\0\x03\x18V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xC1WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xA7W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x99V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x7FV[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x04\x1FW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\x10WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x01V[\x92P\x81\x92b\0\x03\xF4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\nV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04)W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x06%W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04)W` \x90`@Q\x92b\0\x05\x95\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xE6V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xD0W`\0[\x81\x81\x10b\0\x05\xBCWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xA6V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xB0W[` \x83\x10\x14b\0\x06\x9AWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\x8EV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003`\xA0`@\x90\x80\x82R4b\0\x01[WP`\x01\x80U\x80Qa\x11D\x80\x82\x01\x91`\x01`\x01`@\x1B\x03\x91\x82\x84\x11\x82\x85\x10\x17b\0\x01EWb\0\x1E\xE5\x829\x80`\0\x93\x03\x90\x83\xF0\x80\x15b\0\x01;W`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81\x90R\x80;\x15b\0\0\xE9W\x90\x82\x80\x92`\x84\x86Q\x80\x96\x81\x93c&lE\xBB`\xE1\x1B\x83R\x89`\x04\x84\x01R\x81`D\x84\x01R```$\x84\x01R\x81`d\x84\x01RZ\xF1\x80\x15b\0\0\xDFWb\0\0\xB8W[\x83Qa\x1D<\x90\x81b\0\x01\xA9\x829`\x80Q\x81\x81\x81a\x0Bj\x01Ra\x10\x08\x01R\xF3[\x82\x11b\0\0\xCBWP\x81R8\x80\x80b\0\0\x99V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x84Q=\x84\x82>=\x90\xFD[\x83QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x83Q=\x84\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\xE6W`@Q`\x1Fa)\x8A8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xD0W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0\x80WQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x90\x81\x90\x03a\0{W`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x90\x91\x17\x90U`@Qa(V\x90\x81a\x014\x829\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0CGW`\x005`\xE0\x1C\x80c\x0FAf\xB8\x14a\x01\\W\x80c%\th\xD9\x14a\x01WW\x80c0m\xB4k\x14a\x01RW\x80c3\"f\xF3\x14a\x01MW\x80c9(\xFF\x97\x14a\x01HW\x80c;M\x100\x14a\x01CW\x80cO\xD6|X\x14a\x01>W\x80cZ\x93\xB8\xCE\x14a\x019W\x80cb7V\x9F\x14a\x014W\x80c\x7F\x17@\x9C\x14a\x01/W\x80c\x81\xB5\xFA\xC2\x14a\x01*W\x80c\x90.\xCA\xA2\x14a\x01%W\x80c\xA8\xC6.v\x14a\x01 W\x80c\xB0\x9D\x04\xE5\x14a\x01\x1BW\x80c\xCB\x1FU2\x14a\x01\x16W\x80c\xCE\x15;\xF4\x14a\x01\x11W\x80c\xDE\xF1_\x92\x14a\x01\x0CW\x80c\xEC)\xD8\xE6\x14a\x01\x07W\x80c\xEE>\x8C\xFB\x14a\x01\x02W\x80c\xF2\xDEz{\x14a\0\xFDWc\xF3\r7\xF2\x03a\x0CGWa\x0C\x14V[a\x0B\xF8V[a\x0B\xC4V[a\x0B\xAEV[a\x0B=V[a\n;V[a\t\xF6V[a\t\xB2V[a\t\x89V[a\t`V[a\t\x0CV[a\x08\xACV[a\x08KV[a\x08&V[a\x07\xFDV[a\x07\xCBV[a\x057V[a\x04\xDAV[a\x04\xA3V[a\x04:V[a\x02\xAAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`$5\x81\x81\x11a\x03\xCFW6`#\x82\x01\x12\x15a\x03\xCAW\x80`\x04\x015\x91\x82\x11a\x03qW6`$\x83\x83\x01\x01\x11a\x03\x18Wa\x03\x14\x91`$a\x03\x04\x92\x01`\x045a\x0C\xAAV[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[a\x02QV[a\x02\x01V[a\x01\xB1V[a\x01aV[`\0[\x83\x81\x10a\x03\xF1WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01a\x03\xE1V[\x90` \x91a\x04\x1A\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01a\x03\xDEV[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90` a\x047\x92\x81\x81R\x01\x90a\x04\x01V[\x90V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`@Q`\x02` \x82\x01R`\x045`@\x82\x01R`$5``\x82\x01R``\x81Ra\x04u\x81a\n\xDEV[`@Q\x91\x82\x91` \x83R` \x83\x01\x90a\x04\x01V[``\x90`\x03\x19\x01\x12a\x03\xD4W`\x045\x90`$5\x90`D5\x90V[4a\x03\xD9W` a\x04\xD2a\x04\xB66a\x04\x89V[\x90a\x04\xC9a\x04\xC3\x84a\x10\x1CV[\x93a\x10\xF6V[\x92\x91\x90\x91a\x12\xA8V[`@Q\x90\x81R\xF3[4a\x03\xD9W` a\x04\xD2a\x04\xED6a\x04\x89V[\x90a\x04\xFAa\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x14\xD3V[\x80\x15\x15\x03a\x05\rWV[`\0\x80\xFD[\x90\x92`\x80\x92a\x047\x95\x94\x15\x15\x83R` \x83\x01R`@\x82\x01R\x81``\x82\x01R\x01\x90a\x04\x01V[4a\x03\xD9W``6`\x03\x19\x01\x12a\x03\xD4W`\x045`$5a\x05W\x81a\x05\x03V[`D5\x91a\x05ca\x0C\xD6V[\x91a\x05la\x0C\xD6V[\x92a\x05v\x83a\x10\xF6V[\x92\x90\x91\x93` \x94\x85\x83\x01\x93`@\x95\x86\x85\x01R\x84R\x82Ra\x05\x95\x86a\x10\x1CV[\x97\x85\x89\x86a\x05\xAF\x86Q\x88Qa\x05\xA9\x8Da\x10\x1CV[\x91a\x16lV[\x94\x15a\x07EWa\x06\r\x93a\x05\xFFa\x05\xFAa\x06A\x99\x98\x95a\x05\xF4\x86a\x05\xDDa\x06\x06\x97a\x06\x1A\x9C\x99\x01Q\x87a \xAAV[\x92a\x05\xEB\x8DQ\x8BQ\x90a \xD6V[\x91\x01Q\x90a\x16\xAEV[\x90a \xAAV[a\r\x1CV[\x93Qa\r?V[\x8ARa\r?V[\x80\x85\x89\x01R\x87Q\x87a\x11\xEFV[\x90a\x068a\x06-\x86\x89\x01\x93\x80\x85Ra\r\x1CV[\x80\x84R\x82Q\x11a\r\xE6V[Q\x90Q\x90a\r\xD9V[\x94[\x84Q\x83\x86\x01\x80Q\x84\x88\x01Q\x85Q\x96\x87\x01\x93\x84R` \x84\x01\x91\x90\x91R`@\x83\x01R\x90a\x06{\x90\x85\x90``\x01\x03`\x1F\x19\x81\x01\x86R\x85a\x0B\x1BV[`\0Ta\x06\x9E\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07@W\x84`\xC0\x91a\x06\xC9\x97\x86Q\x80\x99\x81\x94\x82\x93c\r\x17\xA7\xC7`\xE3\x1B\x84R0`\x04\x85\x01a\x0E\xC7V[\x03\x91Z\xFA\x94\x85\x15a\x07;W`\0\x95a\x06\xFBW[P\x90a\x06\xF0\x91a\x03\x14\x95\x96Q\x90Q\x90a\x18nV[\x90Q\x94\x85\x94\x85a\x05\x12V[a\x03\x14\x95P\x90a\x07&a\x06\xF0\x93\x92`\xC0=`\xC0\x11a\x074W[a\x07\x1E\x81\x83a\x0B\x1BV[\x81\x01\x90a\x0E\x90V[PPPPP\x95P\x90\x91a\x06\xDCV[P=a\x07\x14V[a\x0E\xEBV[a\x0E=V[a\x07\xA9\x92Pa\x07\xC5\x96a\x07\x90a\x07\xB1\x95a\x07\x89a\x05\xFA\x8Aa\x05\xF4\x88a\x07\x81a\x07wa\x07\x9C\x9Aa\x07\xBC\x9F\x9C\x01Q\x88a \xAAV[\x93Q\x89Q\x90a \xD6V[\x90Q\x90a\x16\xAEV[\x92Qa\r?V[\x92\x8A\x8D\x01\x93\x84Ra\r?V[\x90\x81\x88\x8C\x01RQ\x89a\x0E\xF7V[\x80\x89Ra\r\x1CV[\x80\x88R\x82Q\x11a\rLV[Q\x85Q\x90a\r\xD9V[\x94a\x06CV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4W` a\x04\xD2`\x045a\x07\xF6a\x07\xF0\x82a\x10\x1CV[\x91a\x10\xF6V[P\x90a\x18nV[4a\x03\xD9W` a\x04\xD2a\x08\x106a\x04\x89V[\x90a\x08\x1Da\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x18\x93V[4a\x03\xD9W` a\x04\xD2a\x08Ea\x08<6a\x04\x89V[\x91\x92\x90\x92a\x10\x1CV[\x91a\x1A.V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x08\x87`\x045a\x03\x14a\x08\x8Ea\x08\x7Fa\x08t\x84a\x10\xF6V[\x91\x90P`$5a\x1A[V[\x94\x90\x93a\x10\x1CV[\x84\x84a\x1DlV[\x92`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4W`\x045a\x08\xE7a\x03\x14a\x08\xEEa\x08\xDFa\x08\xD5\x85a\x10\xF6V[\x91P`$5a\x1A\x88V[\x93\x90\x94a\x10\x1CV[\x83\x85a\x1A.V[\x91`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4W`\x80a\t*`\x045a\x10\x1CV[a\t^`@Q\x80\x92``\x90\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[\xF3[4a\x03\xD9W` a\x04\xD2a\ts6a\x04\x89V[\x90a\t\x80a\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x1A\xAFV[4a\x03\xD9W`\x006`\x03\x19\x01\x12a\x03\xD4W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`@Q`\x01` \x82\x01R`\x045`@\x82\x01R`@\x81Ra\x04u\x81a\n\xFFV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x05\rWV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`\x045a\n\x16\x81a\t\xE5V[`@\x80Q`\x03` \x82\x01R`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x82\x82\x01R\x81Ra\x04u\x81a\n\xFFV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14a\nZ`\x045a\x10\xF6V[`@\x80Q\x93\x84R` \x84\x01\x92\x90\x92R\x90\x82\x01R\x90\x81\x90``\x82\x01\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[a\n\xC8V[``\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[4a\x03\xD9W`\xC06`\x03\x19\x01\x12a\x03\xD4W`\x806`C\x19\x01\x12a\x0B\xA9Wa\x03\x14a\x0B\x9D`@Qa\x0Bl\x81a\n\xDEV[`D5\x81R`d5` \x82\x01R`\x845`@\x82\x01R`\xA45a\x0B\x8D\x81a\t\xE5V[``\x82\x01R`$5`\x045a\x1C,V[`@Q\x91\x82\x91\x82a\x04&V[a\nwV[4a\x03\xD9W` a\x04\xD2a\x05\xA9a\x08<6a\x04\x89V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x08\x87`\x045a\x03\x14a\x08\x8Ea\x08\x7Fa\x0B\xED\x84a\x10\xF6V[\x91\x90P`$5a\x1A\x88V[4a\x03\xD9W` a\x04\xD2a\x0C\x0Ea\x08<6a\x04\x89V[\x91a\x1DlV[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4W`\x045a\x08\xE7a\x03\x14a\x08\xEEa\x08\xDFa\x0C=\x85a\x10\xF6V[\x91P`$5a\x1A[V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x81``\x91\x81\x01\x03\x12a\x03\xD4Wa\x0C\xC3a\x047\x92a\x10\x1CV[\x90`@\x81\x015\x90` \x81\x015\x905a\x12\x15V[`@Q\x90``\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@R`\0`@\x83\x82\x81R\x82` \x82\x01R\x01RV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90`\x01\x82\x01\x80\x92\x11a\r*WV[a\r\x06V[\x90a\x03\xE8\x91\x82\x01\x80\x92\x11a\r*WV[\x91\x90\x82\x01\x80\x92\x11a\r*WV[\x15a\rSWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: x reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x03\x91\x82\x11a\r*WV[\x90a\x03\xE8\x91\x82\x03\x91\x82\x11a\r*WV[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\r*WV[\x91\x90\x82\x03\x91\x82\x11a\r*WV[\x15a\r\xEDWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: y reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xC0\x91\x03\x12a\x03\xD4W\x81Qa\x0E\xA7\x81a\x05\x03V[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[a\x047\x93\x92``\x92`\x01\x80`\xA0\x1B\x03\x16\x82R` \x82\x01R\x81`@\x82\x01R\x01\x90a\x04\x01V[`@Q=`\0\x82>=\x90\xFD[\x91a\x08Ea\x047\x93a\x10\x1CV[\x91\x90` \x92\x83\x81\x83\x03\x12a\x03\xD4W\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x82\x11a\x03\xCFW\x01\x82`\x1F\x82\x01\x12\x15a\x03\xCAW\x80Q\x91\x82\x11a\n\xFAW`@Q\x92a\x0FQ`\x1F\x84\x01`\x1F\x19\x16\x87\x01\x85a\x0B\x1BV[\x82\x84R\x85\x83\x83\x01\x01\x11a\x0FnW\x84\x83\x94\x95a\x047\x94\x01\x91\x01a\x03\xDEV[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\x80\x91\x03\x12a\x0B\xA9W`@Qa\x0F\xDB\x81a\n\xDEV[``\x80\x82\x94\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R\x01Q\x91a\x10\x04\x83a\t\xE5V[\x01RV[\x90`\x80\x82\x82\x03\x12a\x03\xD4Wa\x047\x91a\x0F\xC3V[``\x90`@Qa\x10+\x81a\n\xDEV[`\0\x80\x82R` \x82\x01\x81\x90R`@\x82\x01\x81\x90R\x92\x01\x82\x90R\x81Ta\x10Y\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07@W`@Qc\xDC\x17\x83U`\xE0\x1B\x81R`\x04\x81\x01\x92\x90\x92R\x82\x90\x82\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07;W\x82a\x047\x93\x92a\x10\xA3W[PP` \x80\x82Q\x83\x01\x01\x91\x01a\x10\x08V[a\x10\xBF\x92P=\x80\x91\x83>a\x10\xB7\x81\x83a\x0B\x1BV[\x81\x01\x90a\x0F\x04V[8\x80a\x10\x92V[\x90\x81` \x91\x03\x12a\x03\xD4WQa\x047\x81a\t\xE5V[\x90\x81``\x91\x03\x12a\x03\xD4W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`\0T\x90\x91\x90a\x11\x10\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07@W` `\x04\x91`@Q\x92\x83\x80\x92c+\xEE\x84\xF1`\xE2\x1B\x82RZ\xFA\x90\x81\x15a\x07;W`\0\x91a\x11\xC0W[P`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07@W`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x93\x90\x93R``\x90\x83\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07;W`\0\x80\x93`\0\x93a\x11\x89W[P\x92\x91\x90V[\x91\x93PPa\x11\xAF\x91P``=``\x11a\x11\xB9W[a\x11\xA7\x81\x83a\x0B\x1BV[\x81\x01\x90a\x10\xDBV[\x92\x90\x92\x918a\x11\x83V[P=a\x11\x9DV[a\x11\xE2\x91P` =` \x11a\x11\xE8W[a\x11\xDA\x81\x83a\x0B\x1BV[\x81\x01\x90a\x10\xC6V[8a\x11>V[P=a\x11\xD0V[\x91a\x0C\x0Ea\x047\x93a\x10\x1CV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\r*WV[\x92` a\x05\xEB\x84a\x128a\x120a\x05\xF4\x96\x97a\x12>\x99a$\x11V[\x85Q\x90a\x16\xAEV[\x95a$\x11V[g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x81\x01\x90\x81\x13`\x01\x16a\r*W\x90V[\x90\x81R` \x80\x82\x01\x92\x90\x92R`@\x80\x82\x01\x93\x90\x93R``\x80\x82\x01\x94\x90\x94R\x84Q`\x80\x82\x01R\x90\x84\x01Q`\xA0\x82\x01R\x90\x83\x01Q`\xC0\x82\x01R\x91\x01Q`\x01`\x01`\xA0\x1B\x03\x16`\xE0\x82\x01Ra\x01\0\x01\x90V[V[\x90\x92\x91\x85Q` \x87\x01Q`@\x88\x01Qa\x12\xC0\x90a\r\xA3V[\x91a\x12\xCB\x87\x85a$\x11V[a\x12\xD5\x82\x82a\x16\xAEV[\x92a\x12\xDF\x91a\x16\xAEV[\x89Q\x85\x89\x85\x81a\x12\xEF\x85\x8Da$TV[\x90a\x12\xF9\x91a$TV[\x90a\x13\x03\x91a$TV[\x92a\x13\r\x90a$3V[a\x13\x16\x90a\r\xB9V[\x90a\x13 \x91a\r?V[\x90a\x13*\x91a$TV[a\x133\x86a\r\xA3V[a\x13<\x91a$TV[\x92a\x13F\x8Aa\r/V[\x90a\x13P\x90a\x14zV[a\x13Y\x91a\x16\xAEV[\x91a\x13c\x90a$3V[a\x13l\x86a\r\xA3V[a\x13u\x91a$TV[a\x13\x7F\x90\x89a\r?V[\x92a\x13\x89\x91a\r\xD9V[\x91a\x13\x93\x91a$TV[\x89Qa\x13\x9E\x90a\r\xA3V[a\x13\xA7\x90a#\xF2V[a\x13\xB0\x91a\x16\xAEV[a\x13\xB9\x91a$TV[\x91\x88Qa\x13\xC5\x90a\r\xA3V[a\x13\xCE\x88a\r/V[\x92a\x13\xD9\x89\x89a$TV[\x90a\x13\xE3\x91a$TV[\x91a\x13\xED\x86a$3V[\x90a\x13\xF7\x90a\r\xA3V[a\x14\0\x91a$TV[\x92a\x14\n\x91a$TV[\x91a\x14\x14\x91a\r?V[a\x14\x1D\x91a$TV[\x90a\x14'\x84a\x14zV[\x91a\x141\x91a$\x11V[a\x14:\x91a\x14\xB7V[`\0\x13a\x14oWa\x047\x95a\x14j\x93a\x14\\\x92`@Q\x96\x87\x95` \x87\x01a\x12WV[\x03`\x1F\x19\x81\x01\x83R\x82a\x0B\x1BV[a\x1D\xBAV[PPPPPP`\0\x90V[`\x01`\xFF\x1B\x81\x14a\r*W`\0\x03\x90V[\x90\x81a\x03\xE8\x01\x91\x82\x12`\x01\x16a\r*WV[\x90\x81g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r*WV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\r*WV[\x94\x93\x92\x90\x92\x84Q\x90` \x86\x01Q`@\x87\x01Qa\x14\xEE\x90a\r\xA3V[\x92a\x14\xF9\x87\x87a$\x11V[a\x15\x03\x82\x82a\x16\xAEV[\x92a\x15\r\x91a\x16\xAEV[\x88Q\x87\x89\x85\x81a\x15\x1D\x85\x8Ca$TV[\x90a\x15'\x91a$TV[\x90a\x151\x91a$TV[\x92a\x15<\x90\x88a$TV[a\x15F\x90\x88a\r\xD9V[\x90a\x15P\x91a\r?V[\x90a\x15Z\x91a$TV[a\x15c\x87a\r\xA3V[a\x15l\x91a$TV[\x92a\x15w\x8A\x87a\r?V[\x90a\x15\x81\x90a\x14zV[a\x15\x8A\x91a\x16\xAEV[\x91a\x15\x95\x90\x86a$TV[a\x15\x9E\x87a\r\xA3V[a\x15\xA7\x91a$TV[a\x15\xB1\x90\x88a\r?V[\x92a\x15\xBB\x91a\r\xD9V[\x91a\x15\xC5\x91a$TV[\x88Qa\x15\xD0\x90a\r\xA3V[a\x15\xD9\x90a#\xF2V[a\x15\xE2\x91a\x16\xAEV[a\x15\xEB\x91a$TV[\x96Qa\x15\xF6\x90a\r\xA3V[\x93a\x16\x01\x87\x84a\r?V[\x96a\x16\x0B\x91a$TV[\x90a\x16\x15\x91a$TV[\x93a\x16\x1F\x91a$TV[\x90a\x16)\x90a\r\xA3V[a\x162\x91a$TV[\x92a\x16<\x91a$TV[\x91a\x16F\x91a\r?V[a\x16O\x91a$TV[\x91a\x16Y\x90a\x14zV[\x91a\x16c\x91a$\x11V[a\x047\x91a\x14\xB7V[a\x047\x92\x91` a\x16\x82a\x05\xF4\x93\x85Q\x90a\x16\xAEV[\x93\x01Q\x90a\x16\xAEV[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\r*W\x81\x84\x05\x14\x90\x15\x17\x15a\r*WV[a\x18[a\x047\x92}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84a\x18i\x93a\x16\xE4`\0\x82\x13a!RV[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\x17\0\x82a$\x94V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1Da\x16\x8BV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a!\x8AV[a\x18\x8D\x90a\x18\x85a\x047\x94\x93` \x85\x01Q\x90a$\x11V[\x92Q\x90a$\x11V[\x90a$\x11V[\x90\x92\x91\x85Q`@\x87\x01Qg\r\xE0\xB6\xB3\xA7d\0\0`\0\x82\x82\x03\x92\x12\x81\x83\x12\x81\x16\x91\x83\x13\x90\x15\x16\x17a\r*Wa\x18\xC6\x83a\x14\x8BV[a\x18\xCF\x83a\x14\x9DV[a\x18\xD8\x91a\x16\xAEV[\x90\x82a\x18\xE4\x85\x89a#3V[\x90a\x18\xEE\x91a\x16\xAEV[a\x18\xF7\x81a#QV[\x92a\x19\x01\x83a\x14\x9DV[a\x19\x0B\x90\x85a#zV[a\x19\x15\x90\x89a\x11\xFCV[\x91\x82\x91a\x19!\x88a\x14\x8BV[a\x19+\x90\x88a#zV[\x93a\x195\x91a#zV[a\x19>\x87a#\x14V[a\x19G\x91a\x16\xAEV[\x92a\x19Q\x87a\x14\x9DV[a\x19[\x90\x8Ba#zV[\x91\x88a\x19f\x89a#QV[\x90a\x19p\x91a\x14\xB7V[a\x19y\x91a#zV[a\x19\x82\x86a\x14\x9DV[a\x19\x8B\x91a#zV[\x92a\x19\x95\x91a#zV[\x92a\x19\xA0\x90\x89a#zV[\x91a\x19\xAA\x91a\x11\xFCV[a\x19\xB3\x91a#zV[a\x19\xBC\x91a\x14\xB7V[\x92a\x19\xC6\x85a\x14\x8BV[a\x19\xCF\x91a#zV[\x91a\x19\xD9\x87a\x14zV[\x91a\x19\xE3\x90a\x14\x9DV[a\x19\xEC\x91a#zV[a\x19\xF5\x91a\x14\xB7V[a\x19\xFE\x91a#zV[a\x1A\x07\x91a#3V[`\0\x13a\x14oWa\x047\x95a\x1A)\x93a\x14\\\x92`@Q\x96\x87\x95` \x87\x01a\x12WV[a\x1E\xDFV[a\x1ANa\x047\x93\x92a\x1AHa\x1AU\x93` \x86\x01Q\x90a\x16\xAEV[\x90a \xD6V[\x91Qa!\x06V[\x90a\x16\xAEV[\x92\x91\x90a\x1Aqa\x1Ak\x82\x84a \xD6V[\x85a \xAAV[\x93\x81\x03\x90\x81\x11a\r*W\x92\x81\x03\x90\x81\x11a\r*W\x90V[\x92\x91\x90a\x1A\x98a\x1Ak\x82\x84a \xD6V[\x93\x81\x01\x80\x91\x11a\r*W\x92\x81\x01\x80\x91\x11a\r*W\x90V[\x92\x93\x94\x90\x91\x94`@\x82Q\x92\x01Q\x93g\r\xE0\xB6\xB3\xA7d\0\0`\0\x86\x82\x03\x96\x12\x81\x87\x12\x81\x16\x91\x87\x13\x90\x15\x16\x17a\r*W\x82\x87\x94a\x1A\xEA\x86\x85a\x14\xB7V[a\x1A\xF3\x83a\x14\x9DV[a\x1A\xFC\x91a\x16\xAEV[\x95a\x1B\x06\x91a#3V[\x90a\x1B\x10\x91a\x16\xAEV[\x93a\x1B\x1B\x85\x84a#zV[\x94a\x1B%\x87a\x14\x9DV[a\x1B/\x90\x87a#zV[a\x1B9\x90\x89a\x11\xFCV[\x92\x83\x92a\x1BF\x8B\x87a\x14\xB7V[a\x1BP\x90\x88a#zV[\x94a\x1BZ\x91a#zV[a\x1Bc\x87a#\x14V[a\x1Bl\x91a\x16\xAEV[\x93a\x1Bv\x87a\x14\x9DV[a\x1B\x80\x90\x8Ba#zV[\x92\x8Ba\x1B\x8C\x89\x89a#zV[\x90a\x1B\x96\x91a\x14\xB7V[a\x1B\x9F\x91a#zV[a\x1B\xA8\x8Aa\x14\x9DV[a\x1B\xB1\x91a#zV[\x93a\x1B\xBB\x91a#zV[\x93a\x1B\xC5\x91a#zV[\x91a\x1B\xCF\x91a\x11\xFCV[a\x1B\xD8\x91a#zV[a\x1B\xE1\x91a\x14\xB7V[\x95a\x1B\xEB\x91a\x14\xB7V[a\x1B\xF4\x91a#zV[\x92a\x1B\xFE\x90a\x14zV[\x91a\x1C\x08\x90a\x14\x9DV[a\x1C\x11\x91a#zV[a\x1C\x1A\x91a\x14\xB7V[a\x1C#\x91a#zV[a\x047\x91a#3V[\x92\x91\x90\x83a\x1CGa\x1CL\x92a\x1CG` \x86\x01Q\x86Q\x90a$\x11V[a$TV[\x90a\x1CX\x81\x83\x86a\x16lV[\x93a\x1Ce\x82\x86\x85\x84a\x12\x15V[\x85\x90`\0\x80\x82\x12\x15a\x1D.W[\x80\x82\x12a\x1D\x10WPa\x1C\xB7a\x1D\x04\x92a\x047\x96\x97\x98\x86\x93[a\x1C\x9E`@Q\x98\x89\x92\x8C\x8A` \x86\x01a#\xA9V[\x03\x96a\x1C\xB2`\x1F\x19\x98\x89\x81\x01\x83R\x82a\x0B\x1BV[a\x1F\xB6V[\x81Q`@\x80\x84\x01Q``\x94\x85\x01Q\x82Q` \x81\x01\x98\x90\x98R\x91\x87\x01\x99\x90\x99R\x92\x85\x01\x91\x90\x91R`\x80\x84\x01R`\xA0\x83\x01\x95\x90\x95R`\x01`\x01`\xA0\x1B\x03\x90\x94\x16`\xC0\x82\x01R\x92\x83\x90`\xE0\x82\x01\x90V[\x03\x90\x81\x01\x83R\x82a\x0B\x1BV[\x96a\x1D\x1B\x91Pa$uV[\x95a\x1D(\x84\x88\x87\x86a\x12\x15V[\x90a\x1CrV[\x96\x91\x96[\x80\x82\x13a\x1DNWPa\x1C\xB7a\x047\x95\x96\x97a\x1D\x04\x93\x86\x93a\x1C\x8AV[\x96a\x1DY\x91Pa!(V[\x95a\x1Df\x84\x88\x87\x86a\x12\x15V[\x90a\x1D2V[` a\x1D\x85a\x047\x94\x93a\x1AHa\x1AU\x94\x86Q\x90a\x16\xAEV[\x92\x01Qa!\x06V[\x91\x90a\x01\0\x83\x82\x03\x12a\x03\xD4W\x82Q\x92` \x81\x01Q\x92a\x047`@\x83\x01Q\x93`\x80``\x85\x01Q\x94\x01a\x0F\xC3V[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a\x1E\xBEWa\x1D\xD6\x81a%\x06V[a\x1D\xE0\x85\x83a&_V[`\0a\x1D\xEC\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1D\xFD\x85\x96\x95a\r\xC9V[`\x01\x94`\0\x91\x86\x80[a\x1E\x17W[PPPPPPPP\x90PV[\x15a\x1EzW[P\x85\x96\x97\x98P\x80\x91a\x1E8a\x1E2\x8B\x88a\r?V[`\x01\x1C\x90V[\x99a\x1EC\x8B\x87a&_V[\x90\x83a\x1EO\x87\x84a\x16\x8BV[\x13a\x1EnWPP\x89\x92[\x87a\x1Ed\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1E\x06V[\x8B\x97P\x90\x94P\x92a\x1EYV[\x86\x10\x80a\x1E\x94W[\x15a\x1E\x8DW\x88a\x1E\x1DV[\x80\x80a\x1E\x0BV[Pa\x01\0\x82\x10a\x1E\x82V[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81Ra\x03\xE8`\x04\x82\x01R`$\x81\x01\x85\x90R`D\x90\xFD[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a\x1E\xBEWa\x1E\xFB\x81a&\x80V[a\x1F\x05\x85\x83a'\xCBV[`\0a\x1F\x11\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1F\"\x85\x96\x95a\r\xC9V[`\x01\x94`\0\x91\x86\x80[a\x1F;WPPPPPPPP\x90PV[\x15a\x1F\x98W[P\x85\x96\x97\x98P\x80\x91a\x1FVa\x1E2\x8B\x88a\r?V[\x99a\x1Fa\x8B\x87a'\xCBV[\x90\x83a\x1Fm\x87\x84a\x16\x8BV[\x13a\x1F\x8CWPP\x89\x92[\x87a\x1F\x82\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1F+V[\x8B\x97P\x90\x94P\x92a\x1FwV[\x86\x10\x80a\x1F\xABW[\x15a\x1E\x8DW\x88a\x1FAV[Pa\x01\0\x82\x10a\x1F\xA0V[`\0\x93\x92\x91\x84\x91\x83\x82\x11a \x8AWa\x1F\xCE\x82\x82a'\xECV[a\x1F\xD8\x85\x83a'\xECV[`\0a\x1F\xE4\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1F\xF6\x83\x86\x97\x96a\r\xD9V[`\x01\x94`\0\x91\x86\x80[a \x0FWPPPPPPPP\x90PV[\x15a lW[P\x85\x96\x97\x98P\x80\x91a *a\x1E2\x8B\x88a\r?V[\x99a 5\x8B\x87a'\xECV[\x90\x83a A\x87\x84a\x16\x8BV[\x13a `WPP\x89\x92[\x87a V\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1F\xFFV[\x8B\x97P\x90\x94P\x92a KV[\x86\x10\x80a \x7FW[\x15a\x1E\x8DW\x88a \x15V[Pa\x01\0\x82\x10a tV[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x81\x01\x85\x90R`D\x90\xFD[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x05\rW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x0F\xFF\xFF\xFF\xFF\x04`\x01\x01\x90V[a\x03\xE9\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rW`\x01a\x03\xE8`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x15a!YWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a#\x0EWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\"\xDAWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[P`\0\x90V[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14\x82\x15\x15\x16\x15a\x05\rW\x05\x90V[a\x03\xE8\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x15\x82\x84\x05\x82\x14\x17`\0\x19\x90\x92\x10`\x01`\xFF\x1B\x90\x91\x13\x17\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x12\xA6\x93``\x92\x96\x95\x93`\xE0\x83\x01\x97\x83R` \x83\x01R`@\x82\x01R\x01\x90``\x90\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x05\rW\x04\x90V[a\x03\xE8\x90\x80\x82\x02\x91\x82\x04\x14`\x01\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[a\x03\xE7\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rWa\x03\xE8\x90\x04\x90V[a$\x9F\x81\x15\x15a!RV[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x80Q\x81\x01` \x01\x90` \x01\x90a%\x1B\x91a\x1D\x8DV[\x92\x91\x90\x83Q` \x85\x01Q`@\x86\x01Qa%3\x90a\r\xA3V[\x91a%>\x86\x86a$\x11V[a%H\x82\x82a\x16\xAEV[\x92a%R\x91a\x16\xAEV[\x87Q\x86\x88\x85\x81a%b\x85\x8Ba$TV[\x90a%l\x91a$TV[\x90a%v\x91a$TV[\x92a%\x80\x90a$3V[a%\x89\x90a\r\xB9V[\x90a%\x93\x91a\r?V[\x90a%\x9D\x91a$TV[a%\xA6\x86a\r\xA3V[a%\xAF\x91a$TV[\x92a%\xB9\x89a\r/V[\x90a%\xC3\x90a\x14zV[a%\xCC\x91a\x16\xAEV[\x91a%\xD6\x90a$3V[a%\xDF\x86a\r\xA3V[a%\xE8\x91a$TV[a%\xF2\x90\x87a\r?V[\x92a%\xFC\x91a\r\xD9V[\x91a&\x06\x91a$TV[\x87Qa&\x11\x90a\r\xA3V[a&\x1A\x90a#\xF2V[a&#\x91a\x16\xAEV[a&,\x91a$TV[\x95Qa&7\x90a\r\xA3V[\x92a&A\x86a\r/V[\x95a&K\x91a$TV[\x90a&U\x91a$TV[\x92a\x16\x1F\x90a$3V[\x90a&va\x047\x92` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[\x94\x93\x92\x90\x92a\x14\xD3V[a&\x93\x90` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[`@\x81\x95\x93\x95\x94\x92\x94Q\x91\x01Q\x92g\r\xE0\xB6\xB3\xA7d\0\0`\0\x85\x82\x03\x95\x12\x81\x86\x12\x81\x16\x91\x86\x13\x90\x15\x16\x17a\r*W\x81\x86\x93a&\xCD\x85a\x14\x8BV[a&\xD6\x83a\x14\x9DV[a&\xDF\x91a\x16\xAEV[\x94a&\xE9\x91a#3V[\x90a&\xF3\x91a\x16\xAEV[\x92a&\xFD\x84a#QV[\x93a'\x07\x86a\x14\x9DV[a'\x11\x90\x86a#zV[a'\x1B\x90\x88a\x11\xFCV[\x92\x83\x92a''\x8Aa\x14\x8BV[a'1\x90\x87a#zV[\x94a';\x91a#zV[a'D\x86a#\x14V[a'M\x91a\x16\xAEV[\x93a'W\x86a\x14\x9DV[a'a\x90\x8Aa#zV[\x92\x8Aa'l\x88a#QV[\x90a'v\x91a\x14\xB7V[a'\x7F\x91a#zV[a'\x88\x89a\x14\x9DV[a'\x91\x91a#zV[\x93a'\x9B\x91a#zV[\x93a'\xA5\x91a#zV[\x91a'\xAF\x91a\x11\xFCV[a'\xB8\x91a#zV[a'\xC1\x91a\x14\xB7V[\x94a\x1B\xEB\x90a\x14\x8BV[\x90a'\xE2a\x047\x92` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[\x94\x93\x92\x90\x92a\x1A\xAFV[\x80Q\x81\x01\x91`\xE0\x82\x84\x03\x12a\x03\xD4Wa\x047\x92a(\x1A` \x84\x01Q\x93`\x80` `@\x83\x01Q\x94\x01\x91\x01a\x0F\xC3V[\x92a\x12\x15V\xFE\xA2dipfsX\"\x12 ?\x01\xAF\x86\xF2SJ\x1AP\xDB\x15\x94\x12\xAB\xAF\xF8r\x89\x07\x08\xBBf\t\xAA\x0E\xAB\x15To\x8C\xDA\xE9dsolcC\0\x08\x16\x003`\xA0\x80`@R4a\0\xF1W`@Q`\x1Fa\x16\x158\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xDBW\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0\x8BWQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0\x86W`\x80R`@Qa\x14\xD6\x90\x81a\x01?\x829`\x80Q\x81\x81\x81a\x04\x89\x01R\x81\x81a\x07\xCD\x01R\x81\x81a\t\x81\x01Ra\n\xDF\x01R\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0BvW`\x005`\xE0\x1C\x80b.RK\x14a\0\x8BW\x80c\x1E\xDBq\xE5\x14a\0\x86W\x80ch\xBD>8\x14a\0\x81W\x80cs\xCB-\x03\x14a\0|W\x80c\x8A\x04\xBD\xD5\x14a\0wW\x80c\xAC\xAD)\x89\x14a\0rW\x80c\xAF\xBA\x13\xC4\x14a\0mWc\xDC\x17\x83U\x03a\x0BvWa\x0B\x0EV[a\n\xC9V[a\thV[a\t.V[a\x07\xB1V[a\x04'V[a\x03\x9AV[4a\x01\x07W`@6`\x03\x19\x01\x12a\x01\x02W`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\0\xF5a\0\xD2a\0\xC4` \x936\x90`\x04\x01a\x03EV[\x83\x80\x82Q\x83\x01\x01\x91\x01a\x0B\xD9V[\x90a\0\xEFa\0\xE1`\x045a\r%V[\x86\x80\x82Q\x83\x01\x01\x91\x01a\x0B\xF4V[\x92a\x0E\x0EV[`@Q\x90\x81R\xF3[a\x01\xA7V[a\x01WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[a\x02PV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x92\x91\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x02\x82W`@Q\x91a\x02\xD3`\x1F\x82\x01`\x1F\x19\x16` \x01\x84a\x02\x87V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x02\xF0W\x82\x81` \x93\x84`\0\x96\x017\x01\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x80`\x1F\x83\x01\x12\x15a\x03cW\x81` a\x03`\x935\x91\x01a\x02\xA9V[\x90V[a\x01\xF7V[\x90`@Qa\x03u\x81a\x02fV[```\x03\x82\x94\x80T\x84R`\x01\x81\x01T` \x85\x01R`\x02\x81\x01T`@\x85\x01R\x01T\x91\x01RV[4a\x04\x0CW` 6`\x03\x19\x01\x12a\x01\x02W`\x045`\0R`\0` R`\xC0`@`\0 a\x03\xC6\x81a\x03hV[\x90`\x04\x81\x01T\x90`\x05`\x01\x80`\xA0\x1B\x03\x91\x01T\x16\x90```@Q\x93\x80Q\x85R` \x81\x01Q` \x86\x01R`@\x81\x01Q`@\x86\x01R\x01Q``\x84\x01R`\x80\x83\x01R`\xA0\x82\x01R\xF3[a\x01\x07V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04\"WV[`\0\x80\xFD[4a\x04\x0CW``6`\x03\x19\x01\x12a\x01\x02Wa\x04C`\x045a\x04\x11V[`$5`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\x04f\x906\x90`\x04\x01a\x03EV[\x90a\x04p\x81a\r%V[\x90a\x04\x86\x82Q\x92` \x80\x80\x95\x83\x01\x01\x91\x01a\x0B\xF4V[\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x06\x9FW`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x84\x90R\x90``\x90\x82\x90`$\x90\x82\x90Z\xFA\x94\x85\x15a\x06\x9AW`\0\x90\x81\x92\x82\x97a\x06aW[P\x80\x84\x80a\x04\xFF\x93Q\x83\x01\x01\x91\x01a\x0B\xD9V[\x94\x91\x95\x90\x97\x87\x87\x85\x81\x11`\0\x14a\x05\xC8W\x93a\x05T\x86\x94a\x05N\x86a\x05Ia\x05v\x9B\x97a\x05Da\x05a\x98`@a\x05;a\x05m\x9Fa\x05g\x9Fa\x0C\xAEV[\x91\x01Q\x90a\x11\xEEV[a\x11\xEEV[a\x12\x1AV[Pa\r%V[\x80Q\x81\x01\x82\x01\x91\x01a\x0B\xF4V[\x91a\x0E_V[\x83a\x0C\xCDV[\x93\x82\x86\x85a\x0E\x0EV[\x93\x84`\x13\x19\x12\x92\x83a\x05\xBDW[a\x05\xB9\x93\x94`@Q\x96\x87\x96\x87\x92`\xA0\x94\x91\x97\x96\x95\x92`\xC0\x85\x01\x98\x15\x15\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x01RV[\x03\x90\xF3[`\x14\x86\x12\x93Pa\x05\x83V[PP\x91\x92\x90\x93\x80\x89\x11`\0\x14a\x06\x03Wa\x05aa\x05m\x94a\x05Ta\x05v\x97a\x05N\x85a\x05I\x8F\x99\x8Fa\x05D\x90`@a\x05;\x86a\x05g\x9Fa\x0C\xAEV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7Finvalid swap: inputs x and y hav`D\x82\x01Roe the same sign!`\x80\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x96Pa\x04\xFF\x92Pa\x06\x8B\x91P``=``\x11a\x06\x93W[a\x06\x83\x81\x83a\x02\x87V[\x81\x01\x90a\x0B\xD9V[\x96\x90\x92a\x04\xECV[P=a\x06yV[a\x0C\x8CV[a\x0C9V[\x90```\x03\x19\x83\x01\x12a\x01\x02W`\x045a\x06\xBD\x81a\x04\x11V[\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\0\xFDW\x80`#\x83\x01\x12\x15a\x03cW\x81`\x04\x015\x93\x84\x11a\x07XW`$\x84\x83\x01\x01\x11a\x06\xFFW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[4a\x04\x0CWa\x07\xBF6a\x06\xA4V[\x91\x92P`\x01`\x01`\xA0\x1B\x03\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x163\x03a\t\x1CW\x81`\xC0\x91\x81\x01\x03\x12a\x01\x02W\x805\x91` \x82\x015\x91`@\x81\x015\x94``\x82\x015\x90`\xA0\x83\x015\x92a\x08$\x84a\x04\x11V[g\r\xE0\xB6\xB3\xA7d\0\0\x83\x10\x15a\t\nWa\x08\xC8\x94a\x08\xC0\x94`\x80a\x08\xAC\x93a\x08\xB1\x96a\x08Z\x87`\0R`\0` R`@`\0 \x90V[U\x015`\x04a\x08s\x86`\0R`\0` R`@`\0 \x90V[\x01U\x16`\x05a\x08\x8C\x84`\0R`\0` R`@`\0 \x90V[\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90UV[a\r%V[` \x80\x82Q\x83\x01\x01\x91\x01a\x0B\xF4V[\x84\x83\x85a\x0E\x0EV[\x92\x83`\x13\x19\x12\x91\x82a\x08\xFFW[`@\x80Q\x93\x15\x15\x84R` \x84\x01\x95\x90\x95R\x93\x82\x01\x92\x90\x92R``\x81\x01\x92\x90\x92R`\x80\x82\x01R`\xA0\x90\xF3[`\x14\x85\x12\x92Pa\x08\xD5V[`@Qc\xE8\xA3\x8Aa`\xE0\x1B\x81R`\x04\x90\xFD[`@QchS\xCB\xA7`\xE0\x1B\x81R`\x04\x90\xFD[4a\x04\x0CW``a\t>6a\x06\xA4V[\x81\x80\x94P\x94\x92\x94\x01\x03\x12a\x01\x02W\x805\x90a\x08\xC8a\x08\xC0a\x08\xB1`@` \x85\x015\x94\x015\x95a\r%V[4a\x04\x0CWa\tv6a\x06\xA4V[\x92`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x163\x03a\t\x1CWa\t\xDEa\t\xD2`\x05a\t\xC4\x87`\0R`\0` R`@`\0 \x90V[\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x91\x16\x03a\n\xB7Wa\t\xF1\x83\x82\x01\x82a\x0C\xF0V[a\t\xFA\x81a\r\x05V[`\x01\x81\x03a\n3WPa\n\x1Da\n\x18a\n.\x92`\x04\x94\x956\x91a\x02\xA9V[a\x0FPV[\x92`\0R`\0` R`@`\0 \x90V[\x01U[\0[a\n<\x81a\r\x05V[`\x02\x81\x03a\nxWP\x90a\n`a\n[a\ns\x93a\n1\x956\x91a\x02\xA9V[a\x0E\xA6V[\x92\x90\x91`\0R`\0` R`@`\0 \x90V[a\x0E\xCEV[\x80a\n\x84`\x03\x92a\r\x05V[\x03a\n\xA5Wa\x08\x8Ca\n\x1Da\n\xA0`\x05\x93a\n1\x966\x91a\x02\xA9V[a\x0E~V[`@Qc#]+=`\xE0\x1B\x81R`\x04\x90\xFD[`@Qcn\xDA\xEF/`\xE1\x1B\x81R`\x04\x90\xFD[4a\x04\x0CW`\x006`\x03\x19\x01\x12a\x01\x02W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x04\x0CW` \x80`\x03\x196\x01\x12a\x01\x02Wa\x0B+`\x045a\r%V[\x90`@\x80Q\x91` \x83R\x83Q\x91\x82` \x85\x01R`\0[\x83\x81\x10a\x0BcW\x84`@\x81\x86`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x81\x01\x03\x01\x90\xF3[\x85\x81\x01\x83\x01Q\x85\x82\x01\x83\x01R\x82\x01a\x0BAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81``\x91\x03\x12a\x01\x02W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[\x90\x81`\x80\x91\x03\x12a\x01\x02W```@Q\x91a\x0C\x0E\x83a\x02fV[\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x01Qa\x0C1\x81a\x04\x11V[``\x82\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[`@Q=`\0\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0C\xBBWV[a\x0C\x98V[\x91\x90\x82\x01\x80\x92\x11a\x0C\xBBWV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x0C\xBBWV[`\x04\x11\x15a\x04\"WV[\x90\x81` \x91\x03\x12a\x01\x02W5a\x03`\x81a\x0C\xE6V[`\x04\x11\x15a\r\x0FWV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@\x80Qa\r2\x81a\x02fV[`\0\x91\x82\x82R` \x82\x01\x93\x83\x85R\x81\x83\x01\x84\x81R``\x84\x01\x90\x85\x82R\x82\x86R\x85` Ra\rha\rc\x85\x88 a\x03hV[a\x0F\x85V[\x80\x86Rg\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x03\x90\x81\x11a\x0C\xBBW\x84a\x03`\x97a\r\xC5\x95a\r\xB8\x94`\x05\x94a\x0E\0\x9CR\x81\x83R\x82` R`\x04\x84\x84 \x01T\x90R\x81R\x80` R \x01`\x01\x80`\xA0\x1B\x03\x90T\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90RV[Q\x92\x83\x91` \x83\x01\x91\x90\x91```\x80\x82\x01\x93\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[\x03`\x1F\x19\x81\x01\x83R\x82a\x02\x87V[\x92` a\x0E7\x84a\x0E1a\x0E)a\x0E@\x96\x97a\x0EF\x99a\x12JV[\x85Q\x90a\x10.V[\x95a\x12JV[\x91\x01Q\x90a\x10.V[\x90a\x11\xEEV[g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x81\x01\x90\x81\x13`\x01\x16a\x0C\xBBW\x90V[a\x03`\x92\x91` a\x0Eua\x0E@\x93\x85Q\x90a\x10.V[\x93\x01Q\x90a\x10.V[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x0E\x9B` `@\x93\x01Qa\x0C\xE6V[\x01Qa\t\xD2\x81a\x04\x11V[``\x81\x80Q\x81\x01\x03\x12a\x01\x02Wa\x0E\xC0` \x82\x01Qa\x0C\xE6V[```@\x82\x01Q\x91\x01Q\x90\x91V[\x91\x90B\x82\x11\x15a\x0F>Wa\x0E\xE4a\rc\x84a\x03hV[\x90\x81\x84UB`\x03\x85\x01UB\x83\x03\x91\x83\x83\x11a\x0C\xBBWa\x0F\x02\x91a\x0C\xCDV[B\x83\x14a\x0F(W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\x0C\xBBW`\x02\x92`\x01\x85\x01U\x05\x91\x01UV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`@Qcf\xF1\x02\xED`\xE1\x1B\x81R`\x04\x90\xFD[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x0Fm` `@\x93\x01Qa\x0C\xE6V[\x01Q\x90V[\x81\x81\x02\x92\x91\x81\x15\x91\x84\x04\x14\x17\x15a\x0C\xBBWV[``\x81\x01Q\x90` \x81\x01Q\x80\x83\x14a\x10\x04W\x80B\x11`\0\x14a\x0F\xFCW\x91[\x82\x03\x91\x82\x11a\x0C\xBBW`@\x81\x01\x90\x81Q`\0\x81\x13`\0\x14a\x0F\xD6WPa\x03`\x92a\x0F\xD0\x91Q\x92Q\x90a\x0FrV[\x90a\x0C\xC0V[\x90Q\x91P`\x01`\xFF\x1B\x81\x14a\x0C\xBBWa\x03`\x92a\x0F\xF6\x91`\0\x03\x90a\x0FrV[\x90a\x0C\xAEV[PB\x91a\x0F\xA3V[P\x90PQ\x90V[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\x0C\xBBW\x81\x84\x05\x14\x90\x15\x17\x15a\x0C\xBBWV[a\x11\xDBa\x03`\x92}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84a\x11\xE9\x93a\x10d`\0\x82\x13a\x12lV[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\x10\x80\x82a\x14.V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1Da\x10\x0BV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x12\xA4V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\"W`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x04\"W`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\"W\x04\x90V[\x15a\x12sWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a\x14(Wh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x13\xF4We\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[P`\0\x90V[a\x149\x81\x15\x15a\x12lV[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V\xFE\xA2dipfsX\"\x12 [\xFF\x04\xB2O\xE5B\xF6\xEB\x8C\x12\x9C)\xE7I\xF2\x13\xF3LQ/\x9AH\x99Pf\x93\xE6\xE348\xACdsolcC\0\x08\x16\x003`\x80`@\x90\x80\x82R4a\x01\x06WP\x80Q`\x1Fa\x07\xA18\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xF0W\x80\x84\x92``\x94\x87R\x839\x81\x01\x03\x12a\0\xA1Wa\0O\x81a\x01SV[\x90\x82a\0]` \x83\x01a\x01SV[\x91\x01Q\x91`\x01\x80`\xA0\x1B\x03\x19\x913\x83`\0T\x16\x17`\0U`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x83`\x01T\x16\x17`\x01U\x16\x90`\x02T\x16\x17`\x02U`\x03UQa\x064\x90\x81a\x01m\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x01gWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003\xA2dipfsX\"\x12 \x89G\xCC\xF5\xE4\x90\xBF#\xA7\xAD\xE7++\xF6\x7Ft\xE0\xD4gqM\xA0\x9A?\t'm\xBFa\xFD\xDA\x12dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static G3MSETUP_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct G3MSetUp(::ethers::contract::Contract); - impl ::core::clone::Clone for G3MSetUp { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for G3MSetUp { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for G3MSetUp { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for G3MSetUp { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(G3MSetUp)).field(&self.address()).finish() - } - } - impl G3MSetUp { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - G3MSETUP_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - G3MSETUP_ABI.clone(), - G3MSETUP_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `IS_TEST` (0xfa7626d4) function - pub fn is_test(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([250, 118, 38, 212], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `POOL_ID` (0xe0d7d0e9) function - pub fn pool_id( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([224, 215, 208, 233], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `TEST_SWAP_FEE` (0x620a2607) function - pub fn test_swap_fee( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([98, 10, 38, 7], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeArtifacts` (0xb5508aa9) function - pub fn exclude_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([181, 80, 138, 169], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeContracts` (0xe20c9f71) function - pub fn exclude_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([226, 12, 159, 113], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeSenders` (0x1ed7831c) function - pub fn exclude_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([30, 215, 131, 28], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `failed` (0xba414fa6) function - pub fn failed(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([186, 65, 79, 166], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolLiquidityToken` (0xe21485ad) function - pub fn get_pool_liquidity_token( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([226, 20, 133, 173], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setUp` (0x0a9254e4) function - pub fn set_up(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([10, 146, 84, 228], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifactSelectors` (0x66d9a9a0) function - pub fn target_artifact_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([102, 217, 169, 160], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifacts` (0x85226c81) function - pub fn target_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([133, 34, 108, 129], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetContracts` (0x3f7286f4) function - pub fn target_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([63, 114, 134, 244], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetInterfaces` (0x2ade3880) function - pub fn target_interfaces( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([42, 222, 56, 128], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSelectors` (0x916a17c6) function - pub fn target_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([145, 106, 23, 198], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSenders` (0x3e5e3c23) function - pub fn target_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([62, 94, 60, 35], ()) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `log` event - pub fn log_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogFilter> { - self.0.event() - } - ///Gets the contract's `log_address` event - pub fn log_address_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogAddressFilter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_1_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray1Filter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_2_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray2Filter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_3_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray3Filter, - > { - self.0.event() - } - ///Gets the contract's `log_bytes` event - pub fn log_bytes_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogBytesFilter, - > { - self.0.event() - } - ///Gets the contract's `log_bytes32` event - pub fn log_bytes_32_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogBytes32Filter, - > { - self.0.event() - } - ///Gets the contract's `log_int` event - pub fn log_int_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogIntFilter> { - self.0.event() - } - ///Gets the contract's `log_named_address` event - pub fn log_named_address_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedAddressFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_1_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray1Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_2_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray2Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_3_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray3Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_bytes` event - pub fn log_named_bytes_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedBytesFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_bytes32` event - pub fn log_named_bytes_32_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedBytes32Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_decimal_int` event - pub fn log_named_decimal_int_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedDecimalIntFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_decimal_uint` event - pub fn log_named_decimal_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedDecimalUintFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_int` event - pub fn log_named_int_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedIntFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_string` event - pub fn log_named_string_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedStringFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_uint` event - pub fn log_named_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedUintFilter, - > { - self.0.event() - } - ///Gets the contract's `log_string` event - pub fn log_string_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogStringFilter, - > { - self.0.event() - } - ///Gets the contract's `log_uint` event - pub fn log_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogUintFilter> { - self.0.event() - } - ///Gets the contract's `logs` event - pub fn logs_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogsFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - G3MSetUpEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for G3MSetUp { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `BisectionLib_InvalidBounds` with signature `BisectionLib_InvalidBounds(uint256,uint256)` and selector `0x6105bfb6` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "BisectionLib_InvalidBounds", - abi = "BisectionLib_InvalidBounds(uint256,uint256)" - )] - pub struct BisectionLib_InvalidBounds { - pub lower: ::ethers::core::types::U256, - pub upper: ::ethers::core::types::U256, - } - ///Custom Error type `BisectionLib_RootOutsideBounds` with signature `BisectionLib_RootOutsideBounds(int256,int256)` and selector `0x1bc6f974` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "BisectionLib_RootOutsideBounds", - abi = "BisectionLib_RootOutsideBounds(int256,int256)" - )] - pub struct BisectionLib_RootOutsideBounds { - pub lower_result: ::ethers::core::types::I256, - pub upper_result: ::ethers::core::types::I256, - } - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum G3MSetUpErrors { - BisectionLib_InvalidBounds(BisectionLib_InvalidBounds), - BisectionLib_RootOutsideBounds(BisectionLib_RootOutsideBounds), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for G3MSetUpErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BisectionLib_InvalidBounds(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BisectionLib_RootOutsideBounds(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for G3MSetUpErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::BisectionLib_InvalidBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::BisectionLib_RootOutsideBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for G3MSetUpErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for G3MSetUpErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::BisectionLib_InvalidBounds(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::BisectionLib_RootOutsideBounds(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for G3MSetUpErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for G3MSetUpErrors { - fn from(value: BisectionLib_InvalidBounds) -> Self { - Self::BisectionLib_InvalidBounds(value) - } - } - impl ::core::convert::From for G3MSetUpErrors { - fn from(value: BisectionLib_RootOutsideBounds) -> Self { - Self::BisectionLib_RootOutsideBounds(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log", abi = "log(string)")] - pub struct LogFilter(pub ::std::string::String); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_address", abi = "log_address(address)")] - pub struct LogAddressFilter(pub ::ethers::core::types::Address); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(uint256[])")] - pub struct LogArray1Filter { - pub val: ::std::vec::Vec<::ethers::core::types::U256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(int256[])")] - pub struct LogArray2Filter { - pub val: ::std::vec::Vec<::ethers::core::types::I256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(address[])")] - pub struct LogArray3Filter { - pub val: ::std::vec::Vec<::ethers::core::types::Address>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_bytes", abi = "log_bytes(bytes)")] - pub struct LogBytesFilter(pub ::ethers::core::types::Bytes); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_bytes32", abi = "log_bytes32(bytes32)")] - pub struct LogBytes32Filter(pub [u8; 32]); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_int", abi = "log_int(int256)")] - pub struct LogIntFilter(pub ::ethers::core::types::I256); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_address", abi = "log_named_address(string,address)")] - pub struct LogNamedAddressFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,uint256[])")] - pub struct LogNamedArray1Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::U256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,int256[])")] - pub struct LogNamedArray2Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::I256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,address[])")] - pub struct LogNamedArray3Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::Address>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_bytes", abi = "log_named_bytes(string,bytes)")] - pub struct LogNamedBytesFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_bytes32", abi = "log_named_bytes32(string,bytes32)")] - pub struct LogNamedBytes32Filter { - pub key: ::std::string::String, - pub val: [u8; 32], - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "log_named_decimal_int", - abi = "log_named_decimal_int(string,int256,uint256)" - )] - pub struct LogNamedDecimalIntFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::I256, - pub decimals: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "log_named_decimal_uint", - abi = "log_named_decimal_uint(string,uint256,uint256)" - )] - pub struct LogNamedDecimalUintFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::U256, - pub decimals: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_int", abi = "log_named_int(string,int256)")] - pub struct LogNamedIntFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_string", abi = "log_named_string(string,string)")] - pub struct LogNamedStringFilter { - pub key: ::std::string::String, - pub val: ::std::string::String, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_uint", abi = "log_named_uint(string,uint256)")] - pub struct LogNamedUintFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_string", abi = "log_string(string)")] - pub struct LogStringFilter(pub ::std::string::String); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_uint", abi = "log_uint(uint256)")] - pub struct LogUintFilter(pub ::ethers::core::types::U256); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "logs", abi = "logs(bytes)")] - pub struct LogsFilter(pub ::ethers::core::types::Bytes); - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum G3MSetUpEvents { - LogFilter(LogFilter), - LogAddressFilter(LogAddressFilter), - LogArray1Filter(LogArray1Filter), - LogArray2Filter(LogArray2Filter), - LogArray3Filter(LogArray3Filter), - LogBytesFilter(LogBytesFilter), - LogBytes32Filter(LogBytes32Filter), - LogIntFilter(LogIntFilter), - LogNamedAddressFilter(LogNamedAddressFilter), - LogNamedArray1Filter(LogNamedArray1Filter), - LogNamedArray2Filter(LogNamedArray2Filter), - LogNamedArray3Filter(LogNamedArray3Filter), - LogNamedBytesFilter(LogNamedBytesFilter), - LogNamedBytes32Filter(LogNamedBytes32Filter), - LogNamedDecimalIntFilter(LogNamedDecimalIntFilter), - LogNamedDecimalUintFilter(LogNamedDecimalUintFilter), - LogNamedIntFilter(LogNamedIntFilter), - LogNamedStringFilter(LogNamedStringFilter), - LogNamedUintFilter(LogNamedUintFilter), - LogStringFilter(LogStringFilter), - LogUintFilter(LogUintFilter), - LogsFilter(LogsFilter), - } - impl ::ethers::contract::EthLogDecode for G3MSetUpEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = LogFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogFilter(decoded)); - } - if let Ok(decoded) = LogAddressFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogAddressFilter(decoded)); - } - if let Ok(decoded) = LogArray1Filter::decode_log(log) { - return Ok(G3MSetUpEvents::LogArray1Filter(decoded)); - } - if let Ok(decoded) = LogArray2Filter::decode_log(log) { - return Ok(G3MSetUpEvents::LogArray2Filter(decoded)); - } - if let Ok(decoded) = LogArray3Filter::decode_log(log) { - return Ok(G3MSetUpEvents::LogArray3Filter(decoded)); - } - if let Ok(decoded) = LogBytesFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogBytesFilter(decoded)); - } - if let Ok(decoded) = LogBytes32Filter::decode_log(log) { - return Ok(G3MSetUpEvents::LogBytes32Filter(decoded)); - } - if let Ok(decoded) = LogIntFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedAddressFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogNamedAddressFilter(decoded)); - } - if let Ok(decoded) = LogNamedArray1Filter::decode_log(log) { - return Ok(G3MSetUpEvents::LogNamedArray1Filter(decoded)); - } - if let Ok(decoded) = LogNamedArray2Filter::decode_log(log) { - return Ok(G3MSetUpEvents::LogNamedArray2Filter(decoded)); - } - if let Ok(decoded) = LogNamedArray3Filter::decode_log(log) { - return Ok(G3MSetUpEvents::LogNamedArray3Filter(decoded)); - } - if let Ok(decoded) = LogNamedBytesFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogNamedBytesFilter(decoded)); - } - if let Ok(decoded) = LogNamedBytes32Filter::decode_log(log) { - return Ok(G3MSetUpEvents::LogNamedBytes32Filter(decoded)); - } - if let Ok(decoded) = LogNamedDecimalIntFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogNamedDecimalIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedDecimalUintFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogNamedDecimalUintFilter(decoded)); - } - if let Ok(decoded) = LogNamedIntFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogNamedIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedStringFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogNamedStringFilter(decoded)); - } - if let Ok(decoded) = LogNamedUintFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogNamedUintFilter(decoded)); - } - if let Ok(decoded) = LogStringFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogStringFilter(decoded)); - } - if let Ok(decoded) = LogUintFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogUintFilter(decoded)); - } - if let Ok(decoded) = LogsFilter::decode_log(log) { - return Ok(G3MSetUpEvents::LogsFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for G3MSetUpEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::LogFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogAddressFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray1Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray2Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray3Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogBytesFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogBytes32Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogIntFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogNamedAddressFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray1Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray2Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray3Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedBytesFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedBytes32Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedDecimalIntFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedDecimalUintFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedIntFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogNamedStringFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedUintFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogStringFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogUintFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogsFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogFilter) -> Self { - Self::LogFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogAddressFilter) -> Self { - Self::LogAddressFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogArray1Filter) -> Self { - Self::LogArray1Filter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogArray2Filter) -> Self { - Self::LogArray2Filter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogArray3Filter) -> Self { - Self::LogArray3Filter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogBytesFilter) -> Self { - Self::LogBytesFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogBytes32Filter) -> Self { - Self::LogBytes32Filter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogIntFilter) -> Self { - Self::LogIntFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogNamedAddressFilter) -> Self { - Self::LogNamedAddressFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogNamedArray1Filter) -> Self { - Self::LogNamedArray1Filter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogNamedArray2Filter) -> Self { - Self::LogNamedArray2Filter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogNamedArray3Filter) -> Self { - Self::LogNamedArray3Filter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogNamedBytesFilter) -> Self { - Self::LogNamedBytesFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogNamedBytes32Filter) -> Self { - Self::LogNamedBytes32Filter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogNamedDecimalIntFilter) -> Self { - Self::LogNamedDecimalIntFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogNamedDecimalUintFilter) -> Self { - Self::LogNamedDecimalUintFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogNamedIntFilter) -> Self { - Self::LogNamedIntFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogNamedStringFilter) -> Self { - Self::LogNamedStringFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogNamedUintFilter) -> Self { - Self::LogNamedUintFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogStringFilter) -> Self { - Self::LogStringFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogUintFilter) -> Self { - Self::LogUintFilter(value) - } - } - impl ::core::convert::From for G3MSetUpEvents { - fn from(value: LogsFilter) -> Self { - Self::LogsFilter(value) - } - } - ///Container type for all input parameters for the `IS_TEST` function with signature `IS_TEST()` and selector `0xfa7626d4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "IS_TEST", abi = "IS_TEST()")] - pub struct IsTestCall; - ///Container type for all input parameters for the `POOL_ID` function with signature `POOL_ID()` and selector `0xe0d7d0e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "POOL_ID", abi = "POOL_ID()")] - pub struct PoolIdCall; - ///Container type for all input parameters for the `TEST_SWAP_FEE` function with signature `TEST_SWAP_FEE()` and selector `0x620a2607` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "TEST_SWAP_FEE", abi = "TEST_SWAP_FEE()")] - pub struct TestSwapFeeCall; - ///Container type for all input parameters for the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeArtifacts", abi = "excludeArtifacts()")] - pub struct ExcludeArtifactsCall; - ///Container type for all input parameters for the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeContracts", abi = "excludeContracts()")] - pub struct ExcludeContractsCall; - ///Container type for all input parameters for the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeSenders", abi = "excludeSenders()")] - pub struct ExcludeSendersCall; - ///Container type for all input parameters for the `failed` function with signature `failed()` and selector `0xba414fa6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "failed", abi = "failed()")] - pub struct FailedCall; - ///Container type for all input parameters for the `getPoolLiquidityToken` function with signature `getPoolLiquidityToken(uint256)` and selector `0xe21485ad` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolLiquidityToken", abi = "getPoolLiquidityToken(uint256)")] - pub struct GetPoolLiquidityTokenCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `setUp` function with signature `setUp()` and selector `0x0a9254e4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setUp", abi = "setUp()")] - pub struct SetUpCall; - ///Container type for all input parameters for the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifactSelectors", abi = "targetArtifactSelectors()")] - pub struct TargetArtifactSelectorsCall; - ///Container type for all input parameters for the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifacts", abi = "targetArtifacts()")] - pub struct TargetArtifactsCall; - ///Container type for all input parameters for the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetContracts", abi = "targetContracts()")] - pub struct TargetContractsCall; - ///Container type for all input parameters for the `targetInterfaces` function with signature `targetInterfaces()` and selector `0x2ade3880` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetInterfaces", abi = "targetInterfaces()")] - pub struct TargetInterfacesCall; - ///Container type for all input parameters for the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSelectors", abi = "targetSelectors()")] - pub struct TargetSelectorsCall; - ///Container type for all input parameters for the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSenders", abi = "targetSenders()")] - pub struct TargetSendersCall; - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum G3MSetUpCalls { - IsTest(IsTestCall), - PoolId(PoolIdCall), - TestSwapFee(TestSwapFeeCall), - ExcludeArtifacts(ExcludeArtifactsCall), - ExcludeContracts(ExcludeContractsCall), - ExcludeSenders(ExcludeSendersCall), - Failed(FailedCall), - GetPoolLiquidityToken(GetPoolLiquidityTokenCall), - SetUp(SetUpCall), - TargetArtifactSelectors(TargetArtifactSelectorsCall), - TargetArtifacts(TargetArtifactsCall), - TargetContracts(TargetContractsCall), - TargetInterfaces(TargetInterfacesCall), - TargetSelectors(TargetSelectorsCall), - TargetSenders(TargetSendersCall), - } - impl ::ethers::core::abi::AbiDecode for G3MSetUpCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::IsTest(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PoolId(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestSwapFee(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeArtifacts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeContracts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeSenders(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Failed(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPoolLiquidityToken(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SetUp(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetArtifactSelectors(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetArtifacts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetContracts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetInterfaces(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetSelectors(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetSenders(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for G3MSetUpCalls { - fn encode(self) -> Vec { - match self { - Self::IsTest(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PoolId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TestSwapFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Failed(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolLiquidityToken(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetUp(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TargetArtifactSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetInterfaces(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for G3MSetUpCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::IsTest(element) => ::core::fmt::Display::fmt(element, f), - Self::PoolId(element) => ::core::fmt::Display::fmt(element, f), - Self::TestSwapFee(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeSenders(element) => ::core::fmt::Display::fmt(element, f), - Self::Failed(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolLiquidityToken(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SetUp(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetArtifactSelectors(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TargetArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetInterfaces(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSelectors(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSenders(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: IsTestCall) -> Self { - Self::IsTest(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: PoolIdCall) -> Self { - Self::PoolId(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: TestSwapFeeCall) -> Self { - Self::TestSwapFee(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: ExcludeArtifactsCall) -> Self { - Self::ExcludeArtifacts(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: ExcludeContractsCall) -> Self { - Self::ExcludeContracts(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: ExcludeSendersCall) -> Self { - Self::ExcludeSenders(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: FailedCall) -> Self { - Self::Failed(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: GetPoolLiquidityTokenCall) -> Self { - Self::GetPoolLiquidityToken(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: SetUpCall) -> Self { - Self::SetUp(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: TargetArtifactSelectorsCall) -> Self { - Self::TargetArtifactSelectors(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: TargetArtifactsCall) -> Self { - Self::TargetArtifacts(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: TargetContractsCall) -> Self { - Self::TargetContracts(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: TargetInterfacesCall) -> Self { - Self::TargetInterfaces(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: TargetSelectorsCall) -> Self { - Self::TargetSelectors(value) - } - } - impl ::core::convert::From for G3MSetUpCalls { - fn from(value: TargetSendersCall) -> Self { - Self::TargetSenders(value) - } - } - ///Container type for all return fields from the `IS_TEST` function with signature `IS_TEST()` and selector `0xfa7626d4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IsTestReturn(pub bool); - ///Container type for all return fields from the `POOL_ID` function with signature `POOL_ID()` and selector `0xe0d7d0e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PoolIdReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `TEST_SWAP_FEE` function with signature `TEST_SWAP_FEE()` and selector `0x620a2607` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TestSwapFeeReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeArtifactsReturn { - pub excluded_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeContractsReturn { - pub excluded_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeSendersReturn { - pub excluded_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `failed` function with signature `failed()` and selector `0xba414fa6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct FailedReturn(pub bool); - ///Container type for all return fields from the `getPoolLiquidityToken` function with signature `getPoolLiquidityToken(uint256)` and selector `0xe21485ad` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolLiquidityTokenReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactSelectorsReturn { - pub targeted_artifact_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactsReturn { - pub targeted_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetContractsReturn { - pub targeted_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `targetInterfaces` function with signature `targetInterfaces()` and selector `0x2ade3880` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetInterfacesReturn { - pub targeted_interfaces: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSelectorsReturn { - pub targeted_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSendersReturn { - pub targeted_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } -} diff --git a/crates/bindings/src/g3m_solver.rs b/crates/bindings/src/g3m_solver.rs deleted file mode 100644 index 4f5162b4a..000000000 --- a/crates/bindings/src/g3m_solver.rs +++ /dev/null @@ -1,2708 +0,0 @@ -pub use g3m_solver::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod g3m_solver { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_strategy"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("allocateGivenX"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allocateGivenX"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("allocateGivenY"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allocateGivenY"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("calculateDiffLower"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("calculateDiffLower"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("v"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("calculateDiffRaise"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("calculateDiffRaise"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("v"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("checkSwapConstant"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("checkSwapConstant"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("computeOptimalArbLowerPrice"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "computeOptimalArbLowerPrice", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("vUpper"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("computeOptimalArbRaisePrice"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "computeOptimalArbRaisePrice", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("vUpper"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("deallocateGivenX"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("deallocateGivenX"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("deallocateGivenY"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("deallocateGivenY"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("fetchPoolParams"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("fetchPoolParams"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Address, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct G3M.G3MParams"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getInitialPoolData"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getInitialPoolData"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("rx"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("params"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Address, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct G3M.G3MParams"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getNextLiquidity"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getNextLiquidity"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("rx"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("ry"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getNextReserveX"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getNextReserveX"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("ry"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("L"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getNextReserveY"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getNextReserveY"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("rx"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("L"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getReservesAndLiquidity"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "getReservesAndLiquidity", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("internalPrice"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("internalPrice"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("price"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("prepareControllerUpdate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "prepareControllerUpdate", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("controller"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("prepareFeeUpdate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("prepareFeeUpdate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("swapFee"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("prepareWeightXUpdate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "prepareWeightXUpdate", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetWeightX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetTimestamp"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("simulateSwap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("simulateSwap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("swapXIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("strategy"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("strategy"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("BisectionLib_InvalidBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "BisectionLib_InvalidBounds", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("lower"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("upper"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("BisectionLib_RootOutsideBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "BisectionLib_RootOutsideBounds", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("lowerResult"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("upperResult"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static G3MSOLVER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\0\xE6W`@Q`\x1Fa)\x8A8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xD0W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0\x80WQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x90\x81\x90\x03a\0{W`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x90\x91\x17\x90U`@Qa(V\x90\x81a\x014\x829\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0CGW`\x005`\xE0\x1C\x80c\x0FAf\xB8\x14a\x01\\W\x80c%\th\xD9\x14a\x01WW\x80c0m\xB4k\x14a\x01RW\x80c3\"f\xF3\x14a\x01MW\x80c9(\xFF\x97\x14a\x01HW\x80c;M\x100\x14a\x01CW\x80cO\xD6|X\x14a\x01>W\x80cZ\x93\xB8\xCE\x14a\x019W\x80cb7V\x9F\x14a\x014W\x80c\x7F\x17@\x9C\x14a\x01/W\x80c\x81\xB5\xFA\xC2\x14a\x01*W\x80c\x90.\xCA\xA2\x14a\x01%W\x80c\xA8\xC6.v\x14a\x01 W\x80c\xB0\x9D\x04\xE5\x14a\x01\x1BW\x80c\xCB\x1FU2\x14a\x01\x16W\x80c\xCE\x15;\xF4\x14a\x01\x11W\x80c\xDE\xF1_\x92\x14a\x01\x0CW\x80c\xEC)\xD8\xE6\x14a\x01\x07W\x80c\xEE>\x8C\xFB\x14a\x01\x02W\x80c\xF2\xDEz{\x14a\0\xFDWc\xF3\r7\xF2\x03a\x0CGWa\x0C\x14V[a\x0B\xF8V[a\x0B\xC4V[a\x0B\xAEV[a\x0B=V[a\n;V[a\t\xF6V[a\t\xB2V[a\t\x89V[a\t`V[a\t\x0CV[a\x08\xACV[a\x08KV[a\x08&V[a\x07\xFDV[a\x07\xCBV[a\x057V[a\x04\xDAV[a\x04\xA3V[a\x04:V[a\x02\xAAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`$5\x81\x81\x11a\x03\xCFW6`#\x82\x01\x12\x15a\x03\xCAW\x80`\x04\x015\x91\x82\x11a\x03qW6`$\x83\x83\x01\x01\x11a\x03\x18Wa\x03\x14\x91`$a\x03\x04\x92\x01`\x045a\x0C\xAAV[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[a\x02QV[a\x02\x01V[a\x01\xB1V[a\x01aV[`\0[\x83\x81\x10a\x03\xF1WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01a\x03\xE1V[\x90` \x91a\x04\x1A\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01a\x03\xDEV[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90` a\x047\x92\x81\x81R\x01\x90a\x04\x01V[\x90V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`@Q`\x02` \x82\x01R`\x045`@\x82\x01R`$5``\x82\x01R``\x81Ra\x04u\x81a\n\xDEV[`@Q\x91\x82\x91` \x83R` \x83\x01\x90a\x04\x01V[``\x90`\x03\x19\x01\x12a\x03\xD4W`\x045\x90`$5\x90`D5\x90V[4a\x03\xD9W` a\x04\xD2a\x04\xB66a\x04\x89V[\x90a\x04\xC9a\x04\xC3\x84a\x10\x1CV[\x93a\x10\xF6V[\x92\x91\x90\x91a\x12\xA8V[`@Q\x90\x81R\xF3[4a\x03\xD9W` a\x04\xD2a\x04\xED6a\x04\x89V[\x90a\x04\xFAa\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x14\xD3V[\x80\x15\x15\x03a\x05\rWV[`\0\x80\xFD[\x90\x92`\x80\x92a\x047\x95\x94\x15\x15\x83R` \x83\x01R`@\x82\x01R\x81``\x82\x01R\x01\x90a\x04\x01V[4a\x03\xD9W``6`\x03\x19\x01\x12a\x03\xD4W`\x045`$5a\x05W\x81a\x05\x03V[`D5\x91a\x05ca\x0C\xD6V[\x91a\x05la\x0C\xD6V[\x92a\x05v\x83a\x10\xF6V[\x92\x90\x91\x93` \x94\x85\x83\x01\x93`@\x95\x86\x85\x01R\x84R\x82Ra\x05\x95\x86a\x10\x1CV[\x97\x85\x89\x86a\x05\xAF\x86Q\x88Qa\x05\xA9\x8Da\x10\x1CV[\x91a\x16lV[\x94\x15a\x07EWa\x06\r\x93a\x05\xFFa\x05\xFAa\x06A\x99\x98\x95a\x05\xF4\x86a\x05\xDDa\x06\x06\x97a\x06\x1A\x9C\x99\x01Q\x87a \xAAV[\x92a\x05\xEB\x8DQ\x8BQ\x90a \xD6V[\x91\x01Q\x90a\x16\xAEV[\x90a \xAAV[a\r\x1CV[\x93Qa\r?V[\x8ARa\r?V[\x80\x85\x89\x01R\x87Q\x87a\x11\xEFV[\x90a\x068a\x06-\x86\x89\x01\x93\x80\x85Ra\r\x1CV[\x80\x84R\x82Q\x11a\r\xE6V[Q\x90Q\x90a\r\xD9V[\x94[\x84Q\x83\x86\x01\x80Q\x84\x88\x01Q\x85Q\x96\x87\x01\x93\x84R` \x84\x01\x91\x90\x91R`@\x83\x01R\x90a\x06{\x90\x85\x90``\x01\x03`\x1F\x19\x81\x01\x86R\x85a\x0B\x1BV[`\0Ta\x06\x9E\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07@W\x84`\xC0\x91a\x06\xC9\x97\x86Q\x80\x99\x81\x94\x82\x93c\r\x17\xA7\xC7`\xE3\x1B\x84R0`\x04\x85\x01a\x0E\xC7V[\x03\x91Z\xFA\x94\x85\x15a\x07;W`\0\x95a\x06\xFBW[P\x90a\x06\xF0\x91a\x03\x14\x95\x96Q\x90Q\x90a\x18nV[\x90Q\x94\x85\x94\x85a\x05\x12V[a\x03\x14\x95P\x90a\x07&a\x06\xF0\x93\x92`\xC0=`\xC0\x11a\x074W[a\x07\x1E\x81\x83a\x0B\x1BV[\x81\x01\x90a\x0E\x90V[PPPPP\x95P\x90\x91a\x06\xDCV[P=a\x07\x14V[a\x0E\xEBV[a\x0E=V[a\x07\xA9\x92Pa\x07\xC5\x96a\x07\x90a\x07\xB1\x95a\x07\x89a\x05\xFA\x8Aa\x05\xF4\x88a\x07\x81a\x07wa\x07\x9C\x9Aa\x07\xBC\x9F\x9C\x01Q\x88a \xAAV[\x93Q\x89Q\x90a \xD6V[\x90Q\x90a\x16\xAEV[\x92Qa\r?V[\x92\x8A\x8D\x01\x93\x84Ra\r?V[\x90\x81\x88\x8C\x01RQ\x89a\x0E\xF7V[\x80\x89Ra\r\x1CV[\x80\x88R\x82Q\x11a\rLV[Q\x85Q\x90a\r\xD9V[\x94a\x06CV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4W` a\x04\xD2`\x045a\x07\xF6a\x07\xF0\x82a\x10\x1CV[\x91a\x10\xF6V[P\x90a\x18nV[4a\x03\xD9W` a\x04\xD2a\x08\x106a\x04\x89V[\x90a\x08\x1Da\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x18\x93V[4a\x03\xD9W` a\x04\xD2a\x08Ea\x08<6a\x04\x89V[\x91\x92\x90\x92a\x10\x1CV[\x91a\x1A.V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x08\x87`\x045a\x03\x14a\x08\x8Ea\x08\x7Fa\x08t\x84a\x10\xF6V[\x91\x90P`$5a\x1A[V[\x94\x90\x93a\x10\x1CV[\x84\x84a\x1DlV[\x92`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4W`\x045a\x08\xE7a\x03\x14a\x08\xEEa\x08\xDFa\x08\xD5\x85a\x10\xF6V[\x91P`$5a\x1A\x88V[\x93\x90\x94a\x10\x1CV[\x83\x85a\x1A.V[\x91`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4W`\x80a\t*`\x045a\x10\x1CV[a\t^`@Q\x80\x92``\x90\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[\xF3[4a\x03\xD9W` a\x04\xD2a\ts6a\x04\x89V[\x90a\t\x80a\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x1A\xAFV[4a\x03\xD9W`\x006`\x03\x19\x01\x12a\x03\xD4W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`@Q`\x01` \x82\x01R`\x045`@\x82\x01R`@\x81Ra\x04u\x81a\n\xFFV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x05\rWV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`\x045a\n\x16\x81a\t\xE5V[`@\x80Q`\x03` \x82\x01R`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x82\x82\x01R\x81Ra\x04u\x81a\n\xFFV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14a\nZ`\x045a\x10\xF6V[`@\x80Q\x93\x84R` \x84\x01\x92\x90\x92R\x90\x82\x01R\x90\x81\x90``\x82\x01\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[a\n\xC8V[``\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[4a\x03\xD9W`\xC06`\x03\x19\x01\x12a\x03\xD4W`\x806`C\x19\x01\x12a\x0B\xA9Wa\x03\x14a\x0B\x9D`@Qa\x0Bl\x81a\n\xDEV[`D5\x81R`d5` \x82\x01R`\x845`@\x82\x01R`\xA45a\x0B\x8D\x81a\t\xE5V[``\x82\x01R`$5`\x045a\x1C,V[`@Q\x91\x82\x91\x82a\x04&V[a\nwV[4a\x03\xD9W` a\x04\xD2a\x05\xA9a\x08<6a\x04\x89V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x08\x87`\x045a\x03\x14a\x08\x8Ea\x08\x7Fa\x0B\xED\x84a\x10\xF6V[\x91\x90P`$5a\x1A\x88V[4a\x03\xD9W` a\x04\xD2a\x0C\x0Ea\x08<6a\x04\x89V[\x91a\x1DlV[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4W`\x045a\x08\xE7a\x03\x14a\x08\xEEa\x08\xDFa\x0C=\x85a\x10\xF6V[\x91P`$5a\x1A[V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x81``\x91\x81\x01\x03\x12a\x03\xD4Wa\x0C\xC3a\x047\x92a\x10\x1CV[\x90`@\x81\x015\x90` \x81\x015\x905a\x12\x15V[`@Q\x90``\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@R`\0`@\x83\x82\x81R\x82` \x82\x01R\x01RV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90`\x01\x82\x01\x80\x92\x11a\r*WV[a\r\x06V[\x90a\x03\xE8\x91\x82\x01\x80\x92\x11a\r*WV[\x91\x90\x82\x01\x80\x92\x11a\r*WV[\x15a\rSWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: x reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x03\x91\x82\x11a\r*WV[\x90a\x03\xE8\x91\x82\x03\x91\x82\x11a\r*WV[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\r*WV[\x91\x90\x82\x03\x91\x82\x11a\r*WV[\x15a\r\xEDWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: y reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xC0\x91\x03\x12a\x03\xD4W\x81Qa\x0E\xA7\x81a\x05\x03V[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[a\x047\x93\x92``\x92`\x01\x80`\xA0\x1B\x03\x16\x82R` \x82\x01R\x81`@\x82\x01R\x01\x90a\x04\x01V[`@Q=`\0\x82>=\x90\xFD[\x91a\x08Ea\x047\x93a\x10\x1CV[\x91\x90` \x92\x83\x81\x83\x03\x12a\x03\xD4W\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x82\x11a\x03\xCFW\x01\x82`\x1F\x82\x01\x12\x15a\x03\xCAW\x80Q\x91\x82\x11a\n\xFAW`@Q\x92a\x0FQ`\x1F\x84\x01`\x1F\x19\x16\x87\x01\x85a\x0B\x1BV[\x82\x84R\x85\x83\x83\x01\x01\x11a\x0FnW\x84\x83\x94\x95a\x047\x94\x01\x91\x01a\x03\xDEV[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\x80\x91\x03\x12a\x0B\xA9W`@Qa\x0F\xDB\x81a\n\xDEV[``\x80\x82\x94\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R\x01Q\x91a\x10\x04\x83a\t\xE5V[\x01RV[\x90`\x80\x82\x82\x03\x12a\x03\xD4Wa\x047\x91a\x0F\xC3V[``\x90`@Qa\x10+\x81a\n\xDEV[`\0\x80\x82R` \x82\x01\x81\x90R`@\x82\x01\x81\x90R\x92\x01\x82\x90R\x81Ta\x10Y\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07@W`@Qc\xDC\x17\x83U`\xE0\x1B\x81R`\x04\x81\x01\x92\x90\x92R\x82\x90\x82\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07;W\x82a\x047\x93\x92a\x10\xA3W[PP` \x80\x82Q\x83\x01\x01\x91\x01a\x10\x08V[a\x10\xBF\x92P=\x80\x91\x83>a\x10\xB7\x81\x83a\x0B\x1BV[\x81\x01\x90a\x0F\x04V[8\x80a\x10\x92V[\x90\x81` \x91\x03\x12a\x03\xD4WQa\x047\x81a\t\xE5V[\x90\x81``\x91\x03\x12a\x03\xD4W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`\0T\x90\x91\x90a\x11\x10\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07@W` `\x04\x91`@Q\x92\x83\x80\x92c+\xEE\x84\xF1`\xE2\x1B\x82RZ\xFA\x90\x81\x15a\x07;W`\0\x91a\x11\xC0W[P`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07@W`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x93\x90\x93R``\x90\x83\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07;W`\0\x80\x93`\0\x93a\x11\x89W[P\x92\x91\x90V[\x91\x93PPa\x11\xAF\x91P``=``\x11a\x11\xB9W[a\x11\xA7\x81\x83a\x0B\x1BV[\x81\x01\x90a\x10\xDBV[\x92\x90\x92\x918a\x11\x83V[P=a\x11\x9DV[a\x11\xE2\x91P` =` \x11a\x11\xE8W[a\x11\xDA\x81\x83a\x0B\x1BV[\x81\x01\x90a\x10\xC6V[8a\x11>V[P=a\x11\xD0V[\x91a\x0C\x0Ea\x047\x93a\x10\x1CV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\r*WV[\x92` a\x05\xEB\x84a\x128a\x120a\x05\xF4\x96\x97a\x12>\x99a$\x11V[\x85Q\x90a\x16\xAEV[\x95a$\x11V[g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x81\x01\x90\x81\x13`\x01\x16a\r*W\x90V[\x90\x81R` \x80\x82\x01\x92\x90\x92R`@\x80\x82\x01\x93\x90\x93R``\x80\x82\x01\x94\x90\x94R\x84Q`\x80\x82\x01R\x90\x84\x01Q`\xA0\x82\x01R\x90\x83\x01Q`\xC0\x82\x01R\x91\x01Q`\x01`\x01`\xA0\x1B\x03\x16`\xE0\x82\x01Ra\x01\0\x01\x90V[V[\x90\x92\x91\x85Q` \x87\x01Q`@\x88\x01Qa\x12\xC0\x90a\r\xA3V[\x91a\x12\xCB\x87\x85a$\x11V[a\x12\xD5\x82\x82a\x16\xAEV[\x92a\x12\xDF\x91a\x16\xAEV[\x89Q\x85\x89\x85\x81a\x12\xEF\x85\x8Da$TV[\x90a\x12\xF9\x91a$TV[\x90a\x13\x03\x91a$TV[\x92a\x13\r\x90a$3V[a\x13\x16\x90a\r\xB9V[\x90a\x13 \x91a\r?V[\x90a\x13*\x91a$TV[a\x133\x86a\r\xA3V[a\x13<\x91a$TV[\x92a\x13F\x8Aa\r/V[\x90a\x13P\x90a\x14zV[a\x13Y\x91a\x16\xAEV[\x91a\x13c\x90a$3V[a\x13l\x86a\r\xA3V[a\x13u\x91a$TV[a\x13\x7F\x90\x89a\r?V[\x92a\x13\x89\x91a\r\xD9V[\x91a\x13\x93\x91a$TV[\x89Qa\x13\x9E\x90a\r\xA3V[a\x13\xA7\x90a#\xF2V[a\x13\xB0\x91a\x16\xAEV[a\x13\xB9\x91a$TV[\x91\x88Qa\x13\xC5\x90a\r\xA3V[a\x13\xCE\x88a\r/V[\x92a\x13\xD9\x89\x89a$TV[\x90a\x13\xE3\x91a$TV[\x91a\x13\xED\x86a$3V[\x90a\x13\xF7\x90a\r\xA3V[a\x14\0\x91a$TV[\x92a\x14\n\x91a$TV[\x91a\x14\x14\x91a\r?V[a\x14\x1D\x91a$TV[\x90a\x14'\x84a\x14zV[\x91a\x141\x91a$\x11V[a\x14:\x91a\x14\xB7V[`\0\x13a\x14oWa\x047\x95a\x14j\x93a\x14\\\x92`@Q\x96\x87\x95` \x87\x01a\x12WV[\x03`\x1F\x19\x81\x01\x83R\x82a\x0B\x1BV[a\x1D\xBAV[PPPPPP`\0\x90V[`\x01`\xFF\x1B\x81\x14a\r*W`\0\x03\x90V[\x90\x81a\x03\xE8\x01\x91\x82\x12`\x01\x16a\r*WV[\x90\x81g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r*WV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\r*WV[\x94\x93\x92\x90\x92\x84Q\x90` \x86\x01Q`@\x87\x01Qa\x14\xEE\x90a\r\xA3V[\x92a\x14\xF9\x87\x87a$\x11V[a\x15\x03\x82\x82a\x16\xAEV[\x92a\x15\r\x91a\x16\xAEV[\x88Q\x87\x89\x85\x81a\x15\x1D\x85\x8Ca$TV[\x90a\x15'\x91a$TV[\x90a\x151\x91a$TV[\x92a\x15<\x90\x88a$TV[a\x15F\x90\x88a\r\xD9V[\x90a\x15P\x91a\r?V[\x90a\x15Z\x91a$TV[a\x15c\x87a\r\xA3V[a\x15l\x91a$TV[\x92a\x15w\x8A\x87a\r?V[\x90a\x15\x81\x90a\x14zV[a\x15\x8A\x91a\x16\xAEV[\x91a\x15\x95\x90\x86a$TV[a\x15\x9E\x87a\r\xA3V[a\x15\xA7\x91a$TV[a\x15\xB1\x90\x88a\r?V[\x92a\x15\xBB\x91a\r\xD9V[\x91a\x15\xC5\x91a$TV[\x88Qa\x15\xD0\x90a\r\xA3V[a\x15\xD9\x90a#\xF2V[a\x15\xE2\x91a\x16\xAEV[a\x15\xEB\x91a$TV[\x96Qa\x15\xF6\x90a\r\xA3V[\x93a\x16\x01\x87\x84a\r?V[\x96a\x16\x0B\x91a$TV[\x90a\x16\x15\x91a$TV[\x93a\x16\x1F\x91a$TV[\x90a\x16)\x90a\r\xA3V[a\x162\x91a$TV[\x92a\x16<\x91a$TV[\x91a\x16F\x91a\r?V[a\x16O\x91a$TV[\x91a\x16Y\x90a\x14zV[\x91a\x16c\x91a$\x11V[a\x047\x91a\x14\xB7V[a\x047\x92\x91` a\x16\x82a\x05\xF4\x93\x85Q\x90a\x16\xAEV[\x93\x01Q\x90a\x16\xAEV[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\r*W\x81\x84\x05\x14\x90\x15\x17\x15a\r*WV[a\x18[a\x047\x92}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84a\x18i\x93a\x16\xE4`\0\x82\x13a!RV[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\x17\0\x82a$\x94V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1Da\x16\x8BV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a!\x8AV[a\x18\x8D\x90a\x18\x85a\x047\x94\x93` \x85\x01Q\x90a$\x11V[\x92Q\x90a$\x11V[\x90a$\x11V[\x90\x92\x91\x85Q`@\x87\x01Qg\r\xE0\xB6\xB3\xA7d\0\0`\0\x82\x82\x03\x92\x12\x81\x83\x12\x81\x16\x91\x83\x13\x90\x15\x16\x17a\r*Wa\x18\xC6\x83a\x14\x8BV[a\x18\xCF\x83a\x14\x9DV[a\x18\xD8\x91a\x16\xAEV[\x90\x82a\x18\xE4\x85\x89a#3V[\x90a\x18\xEE\x91a\x16\xAEV[a\x18\xF7\x81a#QV[\x92a\x19\x01\x83a\x14\x9DV[a\x19\x0B\x90\x85a#zV[a\x19\x15\x90\x89a\x11\xFCV[\x91\x82\x91a\x19!\x88a\x14\x8BV[a\x19+\x90\x88a#zV[\x93a\x195\x91a#zV[a\x19>\x87a#\x14V[a\x19G\x91a\x16\xAEV[\x92a\x19Q\x87a\x14\x9DV[a\x19[\x90\x8Ba#zV[\x91\x88a\x19f\x89a#QV[\x90a\x19p\x91a\x14\xB7V[a\x19y\x91a#zV[a\x19\x82\x86a\x14\x9DV[a\x19\x8B\x91a#zV[\x92a\x19\x95\x91a#zV[\x92a\x19\xA0\x90\x89a#zV[\x91a\x19\xAA\x91a\x11\xFCV[a\x19\xB3\x91a#zV[a\x19\xBC\x91a\x14\xB7V[\x92a\x19\xC6\x85a\x14\x8BV[a\x19\xCF\x91a#zV[\x91a\x19\xD9\x87a\x14zV[\x91a\x19\xE3\x90a\x14\x9DV[a\x19\xEC\x91a#zV[a\x19\xF5\x91a\x14\xB7V[a\x19\xFE\x91a#zV[a\x1A\x07\x91a#3V[`\0\x13a\x14oWa\x047\x95a\x1A)\x93a\x14\\\x92`@Q\x96\x87\x95` \x87\x01a\x12WV[a\x1E\xDFV[a\x1ANa\x047\x93\x92a\x1AHa\x1AU\x93` \x86\x01Q\x90a\x16\xAEV[\x90a \xD6V[\x91Qa!\x06V[\x90a\x16\xAEV[\x92\x91\x90a\x1Aqa\x1Ak\x82\x84a \xD6V[\x85a \xAAV[\x93\x81\x03\x90\x81\x11a\r*W\x92\x81\x03\x90\x81\x11a\r*W\x90V[\x92\x91\x90a\x1A\x98a\x1Ak\x82\x84a \xD6V[\x93\x81\x01\x80\x91\x11a\r*W\x92\x81\x01\x80\x91\x11a\r*W\x90V[\x92\x93\x94\x90\x91\x94`@\x82Q\x92\x01Q\x93g\r\xE0\xB6\xB3\xA7d\0\0`\0\x86\x82\x03\x96\x12\x81\x87\x12\x81\x16\x91\x87\x13\x90\x15\x16\x17a\r*W\x82\x87\x94a\x1A\xEA\x86\x85a\x14\xB7V[a\x1A\xF3\x83a\x14\x9DV[a\x1A\xFC\x91a\x16\xAEV[\x95a\x1B\x06\x91a#3V[\x90a\x1B\x10\x91a\x16\xAEV[\x93a\x1B\x1B\x85\x84a#zV[\x94a\x1B%\x87a\x14\x9DV[a\x1B/\x90\x87a#zV[a\x1B9\x90\x89a\x11\xFCV[\x92\x83\x92a\x1BF\x8B\x87a\x14\xB7V[a\x1BP\x90\x88a#zV[\x94a\x1BZ\x91a#zV[a\x1Bc\x87a#\x14V[a\x1Bl\x91a\x16\xAEV[\x93a\x1Bv\x87a\x14\x9DV[a\x1B\x80\x90\x8Ba#zV[\x92\x8Ba\x1B\x8C\x89\x89a#zV[\x90a\x1B\x96\x91a\x14\xB7V[a\x1B\x9F\x91a#zV[a\x1B\xA8\x8Aa\x14\x9DV[a\x1B\xB1\x91a#zV[\x93a\x1B\xBB\x91a#zV[\x93a\x1B\xC5\x91a#zV[\x91a\x1B\xCF\x91a\x11\xFCV[a\x1B\xD8\x91a#zV[a\x1B\xE1\x91a\x14\xB7V[\x95a\x1B\xEB\x91a\x14\xB7V[a\x1B\xF4\x91a#zV[\x92a\x1B\xFE\x90a\x14zV[\x91a\x1C\x08\x90a\x14\x9DV[a\x1C\x11\x91a#zV[a\x1C\x1A\x91a\x14\xB7V[a\x1C#\x91a#zV[a\x047\x91a#3V[\x92\x91\x90\x83a\x1CGa\x1CL\x92a\x1CG` \x86\x01Q\x86Q\x90a$\x11V[a$TV[\x90a\x1CX\x81\x83\x86a\x16lV[\x93a\x1Ce\x82\x86\x85\x84a\x12\x15V[\x85\x90`\0\x80\x82\x12\x15a\x1D.W[\x80\x82\x12a\x1D\x10WPa\x1C\xB7a\x1D\x04\x92a\x047\x96\x97\x98\x86\x93[a\x1C\x9E`@Q\x98\x89\x92\x8C\x8A` \x86\x01a#\xA9V[\x03\x96a\x1C\xB2`\x1F\x19\x98\x89\x81\x01\x83R\x82a\x0B\x1BV[a\x1F\xB6V[\x81Q`@\x80\x84\x01Q``\x94\x85\x01Q\x82Q` \x81\x01\x98\x90\x98R\x91\x87\x01\x99\x90\x99R\x92\x85\x01\x91\x90\x91R`\x80\x84\x01R`\xA0\x83\x01\x95\x90\x95R`\x01`\x01`\xA0\x1B\x03\x90\x94\x16`\xC0\x82\x01R\x92\x83\x90`\xE0\x82\x01\x90V[\x03\x90\x81\x01\x83R\x82a\x0B\x1BV[\x96a\x1D\x1B\x91Pa$uV[\x95a\x1D(\x84\x88\x87\x86a\x12\x15V[\x90a\x1CrV[\x96\x91\x96[\x80\x82\x13a\x1DNWPa\x1C\xB7a\x047\x95\x96\x97a\x1D\x04\x93\x86\x93a\x1C\x8AV[\x96a\x1DY\x91Pa!(V[\x95a\x1Df\x84\x88\x87\x86a\x12\x15V[\x90a\x1D2V[` a\x1D\x85a\x047\x94\x93a\x1AHa\x1AU\x94\x86Q\x90a\x16\xAEV[\x92\x01Qa!\x06V[\x91\x90a\x01\0\x83\x82\x03\x12a\x03\xD4W\x82Q\x92` \x81\x01Q\x92a\x047`@\x83\x01Q\x93`\x80``\x85\x01Q\x94\x01a\x0F\xC3V[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a\x1E\xBEWa\x1D\xD6\x81a%\x06V[a\x1D\xE0\x85\x83a&_V[`\0a\x1D\xEC\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1D\xFD\x85\x96\x95a\r\xC9V[`\x01\x94`\0\x91\x86\x80[a\x1E\x17W[PPPPPPPP\x90PV[\x15a\x1EzW[P\x85\x96\x97\x98P\x80\x91a\x1E8a\x1E2\x8B\x88a\r?V[`\x01\x1C\x90V[\x99a\x1EC\x8B\x87a&_V[\x90\x83a\x1EO\x87\x84a\x16\x8BV[\x13a\x1EnWPP\x89\x92[\x87a\x1Ed\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1E\x06V[\x8B\x97P\x90\x94P\x92a\x1EYV[\x86\x10\x80a\x1E\x94W[\x15a\x1E\x8DW\x88a\x1E\x1DV[\x80\x80a\x1E\x0BV[Pa\x01\0\x82\x10a\x1E\x82V[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81Ra\x03\xE8`\x04\x82\x01R`$\x81\x01\x85\x90R`D\x90\xFD[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a\x1E\xBEWa\x1E\xFB\x81a&\x80V[a\x1F\x05\x85\x83a'\xCBV[`\0a\x1F\x11\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1F\"\x85\x96\x95a\r\xC9V[`\x01\x94`\0\x91\x86\x80[a\x1F;WPPPPPPPP\x90PV[\x15a\x1F\x98W[P\x85\x96\x97\x98P\x80\x91a\x1FVa\x1E2\x8B\x88a\r?V[\x99a\x1Fa\x8B\x87a'\xCBV[\x90\x83a\x1Fm\x87\x84a\x16\x8BV[\x13a\x1F\x8CWPP\x89\x92[\x87a\x1F\x82\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1F+V[\x8B\x97P\x90\x94P\x92a\x1FwV[\x86\x10\x80a\x1F\xABW[\x15a\x1E\x8DW\x88a\x1FAV[Pa\x01\0\x82\x10a\x1F\xA0V[`\0\x93\x92\x91\x84\x91\x83\x82\x11a \x8AWa\x1F\xCE\x82\x82a'\xECV[a\x1F\xD8\x85\x83a'\xECV[`\0a\x1F\xE4\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1F\xF6\x83\x86\x97\x96a\r\xD9V[`\x01\x94`\0\x91\x86\x80[a \x0FWPPPPPPPP\x90PV[\x15a lW[P\x85\x96\x97\x98P\x80\x91a *a\x1E2\x8B\x88a\r?V[\x99a 5\x8B\x87a'\xECV[\x90\x83a A\x87\x84a\x16\x8BV[\x13a `WPP\x89\x92[\x87a V\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1F\xFFV[\x8B\x97P\x90\x94P\x92a KV[\x86\x10\x80a \x7FW[\x15a\x1E\x8DW\x88a \x15V[Pa\x01\0\x82\x10a tV[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x81\x01\x85\x90R`D\x90\xFD[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x05\rW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x0F\xFF\xFF\xFF\xFF\x04`\x01\x01\x90V[a\x03\xE9\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rW`\x01a\x03\xE8`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x15a!YWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a#\x0EWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\"\xDAWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[P`\0\x90V[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14\x82\x15\x15\x16\x15a\x05\rW\x05\x90V[a\x03\xE8\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x15\x82\x84\x05\x82\x14\x17`\0\x19\x90\x92\x10`\x01`\xFF\x1B\x90\x91\x13\x17\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x12\xA6\x93``\x92\x96\x95\x93`\xE0\x83\x01\x97\x83R` \x83\x01R`@\x82\x01R\x01\x90``\x90\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x05\rW\x04\x90V[a\x03\xE8\x90\x80\x82\x02\x91\x82\x04\x14`\x01\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[a\x03\xE7\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rWa\x03\xE8\x90\x04\x90V[a$\x9F\x81\x15\x15a!RV[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x80Q\x81\x01` \x01\x90` \x01\x90a%\x1B\x91a\x1D\x8DV[\x92\x91\x90\x83Q` \x85\x01Q`@\x86\x01Qa%3\x90a\r\xA3V[\x91a%>\x86\x86a$\x11V[a%H\x82\x82a\x16\xAEV[\x92a%R\x91a\x16\xAEV[\x87Q\x86\x88\x85\x81a%b\x85\x8Ba$TV[\x90a%l\x91a$TV[\x90a%v\x91a$TV[\x92a%\x80\x90a$3V[a%\x89\x90a\r\xB9V[\x90a%\x93\x91a\r?V[\x90a%\x9D\x91a$TV[a%\xA6\x86a\r\xA3V[a%\xAF\x91a$TV[\x92a%\xB9\x89a\r/V[\x90a%\xC3\x90a\x14zV[a%\xCC\x91a\x16\xAEV[\x91a%\xD6\x90a$3V[a%\xDF\x86a\r\xA3V[a%\xE8\x91a$TV[a%\xF2\x90\x87a\r?V[\x92a%\xFC\x91a\r\xD9V[\x91a&\x06\x91a$TV[\x87Qa&\x11\x90a\r\xA3V[a&\x1A\x90a#\xF2V[a&#\x91a\x16\xAEV[a&,\x91a$TV[\x95Qa&7\x90a\r\xA3V[\x92a&A\x86a\r/V[\x95a&K\x91a$TV[\x90a&U\x91a$TV[\x92a\x16\x1F\x90a$3V[\x90a&va\x047\x92` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[\x94\x93\x92\x90\x92a\x14\xD3V[a&\x93\x90` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[`@\x81\x95\x93\x95\x94\x92\x94Q\x91\x01Q\x92g\r\xE0\xB6\xB3\xA7d\0\0`\0\x85\x82\x03\x95\x12\x81\x86\x12\x81\x16\x91\x86\x13\x90\x15\x16\x17a\r*W\x81\x86\x93a&\xCD\x85a\x14\x8BV[a&\xD6\x83a\x14\x9DV[a&\xDF\x91a\x16\xAEV[\x94a&\xE9\x91a#3V[\x90a&\xF3\x91a\x16\xAEV[\x92a&\xFD\x84a#QV[\x93a'\x07\x86a\x14\x9DV[a'\x11\x90\x86a#zV[a'\x1B\x90\x88a\x11\xFCV[\x92\x83\x92a''\x8Aa\x14\x8BV[a'1\x90\x87a#zV[\x94a';\x91a#zV[a'D\x86a#\x14V[a'M\x91a\x16\xAEV[\x93a'W\x86a\x14\x9DV[a'a\x90\x8Aa#zV[\x92\x8Aa'l\x88a#QV[\x90a'v\x91a\x14\xB7V[a'\x7F\x91a#zV[a'\x88\x89a\x14\x9DV[a'\x91\x91a#zV[\x93a'\x9B\x91a#zV[\x93a'\xA5\x91a#zV[\x91a'\xAF\x91a\x11\xFCV[a'\xB8\x91a#zV[a'\xC1\x91a\x14\xB7V[\x94a\x1B\xEB\x90a\x14\x8BV[\x90a'\xE2a\x047\x92` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[\x94\x93\x92\x90\x92a\x1A\xAFV[\x80Q\x81\x01\x91`\xE0\x82\x84\x03\x12a\x03\xD4Wa\x047\x92a(\x1A` \x84\x01Q\x93`\x80` `@\x83\x01Q\x94\x01\x91\x01a\x0F\xC3V[\x92a\x12\x15V\xFE\xA2dipfsX\"\x12 ?\x01\xAF\x86\xF2SJ\x1AP\xDB\x15\x94\x12\xAB\xAF\xF8r\x89\x07\x08\xBBf\t\xAA\x0E\xAB\x15To\x8C\xDA\xE9dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static G3MSOLVER_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\x0CGW`\x005`\xE0\x1C\x80c\x0FAf\xB8\x14a\x01\\W\x80c%\th\xD9\x14a\x01WW\x80c0m\xB4k\x14a\x01RW\x80c3\"f\xF3\x14a\x01MW\x80c9(\xFF\x97\x14a\x01HW\x80c;M\x100\x14a\x01CW\x80cO\xD6|X\x14a\x01>W\x80cZ\x93\xB8\xCE\x14a\x019W\x80cb7V\x9F\x14a\x014W\x80c\x7F\x17@\x9C\x14a\x01/W\x80c\x81\xB5\xFA\xC2\x14a\x01*W\x80c\x90.\xCA\xA2\x14a\x01%W\x80c\xA8\xC6.v\x14a\x01 W\x80c\xB0\x9D\x04\xE5\x14a\x01\x1BW\x80c\xCB\x1FU2\x14a\x01\x16W\x80c\xCE\x15;\xF4\x14a\x01\x11W\x80c\xDE\xF1_\x92\x14a\x01\x0CW\x80c\xEC)\xD8\xE6\x14a\x01\x07W\x80c\xEE>\x8C\xFB\x14a\x01\x02W\x80c\xF2\xDEz{\x14a\0\xFDWc\xF3\r7\xF2\x03a\x0CGWa\x0C\x14V[a\x0B\xF8V[a\x0B\xC4V[a\x0B\xAEV[a\x0B=V[a\n;V[a\t\xF6V[a\t\xB2V[a\t\x89V[a\t`V[a\t\x0CV[a\x08\xACV[a\x08KV[a\x08&V[a\x07\xFDV[a\x07\xCBV[a\x057V[a\x04\xDAV[a\x04\xA3V[a\x04:V[a\x02\xAAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`$5\x81\x81\x11a\x03\xCFW6`#\x82\x01\x12\x15a\x03\xCAW\x80`\x04\x015\x91\x82\x11a\x03qW6`$\x83\x83\x01\x01\x11a\x03\x18Wa\x03\x14\x91`$a\x03\x04\x92\x01`\x045a\x0C\xAAV[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[a\x02QV[a\x02\x01V[a\x01\xB1V[a\x01aV[`\0[\x83\x81\x10a\x03\xF1WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01a\x03\xE1V[\x90` \x91a\x04\x1A\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01a\x03\xDEV[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90` a\x047\x92\x81\x81R\x01\x90a\x04\x01V[\x90V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`@Q`\x02` \x82\x01R`\x045`@\x82\x01R`$5``\x82\x01R``\x81Ra\x04u\x81a\n\xDEV[`@Q\x91\x82\x91` \x83R` \x83\x01\x90a\x04\x01V[``\x90`\x03\x19\x01\x12a\x03\xD4W`\x045\x90`$5\x90`D5\x90V[4a\x03\xD9W` a\x04\xD2a\x04\xB66a\x04\x89V[\x90a\x04\xC9a\x04\xC3\x84a\x10\x1CV[\x93a\x10\xF6V[\x92\x91\x90\x91a\x12\xA8V[`@Q\x90\x81R\xF3[4a\x03\xD9W` a\x04\xD2a\x04\xED6a\x04\x89V[\x90a\x04\xFAa\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x14\xD3V[\x80\x15\x15\x03a\x05\rWV[`\0\x80\xFD[\x90\x92`\x80\x92a\x047\x95\x94\x15\x15\x83R` \x83\x01R`@\x82\x01R\x81``\x82\x01R\x01\x90a\x04\x01V[4a\x03\xD9W``6`\x03\x19\x01\x12a\x03\xD4W`\x045`$5a\x05W\x81a\x05\x03V[`D5\x91a\x05ca\x0C\xD6V[\x91a\x05la\x0C\xD6V[\x92a\x05v\x83a\x10\xF6V[\x92\x90\x91\x93` \x94\x85\x83\x01\x93`@\x95\x86\x85\x01R\x84R\x82Ra\x05\x95\x86a\x10\x1CV[\x97\x85\x89\x86a\x05\xAF\x86Q\x88Qa\x05\xA9\x8Da\x10\x1CV[\x91a\x16lV[\x94\x15a\x07EWa\x06\r\x93a\x05\xFFa\x05\xFAa\x06A\x99\x98\x95a\x05\xF4\x86a\x05\xDDa\x06\x06\x97a\x06\x1A\x9C\x99\x01Q\x87a \xAAV[\x92a\x05\xEB\x8DQ\x8BQ\x90a \xD6V[\x91\x01Q\x90a\x16\xAEV[\x90a \xAAV[a\r\x1CV[\x93Qa\r?V[\x8ARa\r?V[\x80\x85\x89\x01R\x87Q\x87a\x11\xEFV[\x90a\x068a\x06-\x86\x89\x01\x93\x80\x85Ra\r\x1CV[\x80\x84R\x82Q\x11a\r\xE6V[Q\x90Q\x90a\r\xD9V[\x94[\x84Q\x83\x86\x01\x80Q\x84\x88\x01Q\x85Q\x96\x87\x01\x93\x84R` \x84\x01\x91\x90\x91R`@\x83\x01R\x90a\x06{\x90\x85\x90``\x01\x03`\x1F\x19\x81\x01\x86R\x85a\x0B\x1BV[`\0Ta\x06\x9E\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07@W\x84`\xC0\x91a\x06\xC9\x97\x86Q\x80\x99\x81\x94\x82\x93c\r\x17\xA7\xC7`\xE3\x1B\x84R0`\x04\x85\x01a\x0E\xC7V[\x03\x91Z\xFA\x94\x85\x15a\x07;W`\0\x95a\x06\xFBW[P\x90a\x06\xF0\x91a\x03\x14\x95\x96Q\x90Q\x90a\x18nV[\x90Q\x94\x85\x94\x85a\x05\x12V[a\x03\x14\x95P\x90a\x07&a\x06\xF0\x93\x92`\xC0=`\xC0\x11a\x074W[a\x07\x1E\x81\x83a\x0B\x1BV[\x81\x01\x90a\x0E\x90V[PPPPP\x95P\x90\x91a\x06\xDCV[P=a\x07\x14V[a\x0E\xEBV[a\x0E=V[a\x07\xA9\x92Pa\x07\xC5\x96a\x07\x90a\x07\xB1\x95a\x07\x89a\x05\xFA\x8Aa\x05\xF4\x88a\x07\x81a\x07wa\x07\x9C\x9Aa\x07\xBC\x9F\x9C\x01Q\x88a \xAAV[\x93Q\x89Q\x90a \xD6V[\x90Q\x90a\x16\xAEV[\x92Qa\r?V[\x92\x8A\x8D\x01\x93\x84Ra\r?V[\x90\x81\x88\x8C\x01RQ\x89a\x0E\xF7V[\x80\x89Ra\r\x1CV[\x80\x88R\x82Q\x11a\rLV[Q\x85Q\x90a\r\xD9V[\x94a\x06CV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4W` a\x04\xD2`\x045a\x07\xF6a\x07\xF0\x82a\x10\x1CV[\x91a\x10\xF6V[P\x90a\x18nV[4a\x03\xD9W` a\x04\xD2a\x08\x106a\x04\x89V[\x90a\x08\x1Da\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x18\x93V[4a\x03\xD9W` a\x04\xD2a\x08Ea\x08<6a\x04\x89V[\x91\x92\x90\x92a\x10\x1CV[\x91a\x1A.V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x08\x87`\x045a\x03\x14a\x08\x8Ea\x08\x7Fa\x08t\x84a\x10\xF6V[\x91\x90P`$5a\x1A[V[\x94\x90\x93a\x10\x1CV[\x84\x84a\x1DlV[\x92`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4W`\x045a\x08\xE7a\x03\x14a\x08\xEEa\x08\xDFa\x08\xD5\x85a\x10\xF6V[\x91P`$5a\x1A\x88V[\x93\x90\x94a\x10\x1CV[\x83\x85a\x1A.V[\x91`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4W`\x80a\t*`\x045a\x10\x1CV[a\t^`@Q\x80\x92``\x90\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[\xF3[4a\x03\xD9W` a\x04\xD2a\ts6a\x04\x89V[\x90a\t\x80a\x04\xC3\x84a\x10\x1CV[\x92\x91\x90\x91a\x1A\xAFV[4a\x03\xD9W`\x006`\x03\x19\x01\x12a\x03\xD4W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`@Q`\x01` \x82\x01R`\x045`@\x82\x01R`@\x81Ra\x04u\x81a\n\xFFV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x05\rWV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14`\x045a\n\x16\x81a\t\xE5V[`@\x80Q`\x03` \x82\x01R`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x82\x82\x01R\x81Ra\x04u\x81a\n\xFFV[4a\x03\xD9W` 6`\x03\x19\x01\x12a\x03\xD4Wa\x03\x14a\nZ`\x045a\x10\xF6V[`@\x80Q\x93\x84R` \x84\x01\x92\x90\x92R\x90\x82\x01R\x90\x81\x90``\x82\x01\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[a\n\xC8V[``\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@RV[4a\x03\xD9W`\xC06`\x03\x19\x01\x12a\x03\xD4W`\x806`C\x19\x01\x12a\x0B\xA9Wa\x03\x14a\x0B\x9D`@Qa\x0Bl\x81a\n\xDEV[`D5\x81R`d5` \x82\x01R`\x845`@\x82\x01R`\xA45a\x0B\x8D\x81a\t\xE5V[``\x82\x01R`$5`\x045a\x1C,V[`@Q\x91\x82\x91\x82a\x04&V[a\nwV[4a\x03\xD9W` a\x04\xD2a\x05\xA9a\x08<6a\x04\x89V[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4Wa\x08\x87`\x045a\x03\x14a\x08\x8Ea\x08\x7Fa\x0B\xED\x84a\x10\xF6V[\x91\x90P`$5a\x1A\x88V[4a\x03\xD9W` a\x04\xD2a\x0C\x0Ea\x08<6a\x04\x89V[\x91a\x1DlV[4a\x03\xD9W`@6`\x03\x19\x01\x12a\x03\xD4W`\x045a\x08\xE7a\x03\x14a\x08\xEEa\x08\xDFa\x0C=\x85a\x10\xF6V[\x91P`$5a\x1A[V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x81``\x91\x81\x01\x03\x12a\x03\xD4Wa\x0C\xC3a\x047\x92a\x10\x1CV[\x90`@\x81\x015\x90` \x81\x015\x905a\x12\x15V[`@Q\x90``\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\n\xFAW`@R`\0`@\x83\x82\x81R\x82` \x82\x01R\x01RV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90`\x01\x82\x01\x80\x92\x11a\r*WV[a\r\x06V[\x90a\x03\xE8\x91\x82\x01\x80\x92\x11a\r*WV[\x91\x90\x82\x01\x80\x92\x11a\r*WV[\x15a\rSWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: x reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x03\x91\x82\x11a\r*WV[\x90a\x03\xE8\x91\x82\x03\x91\x82\x11a\r*WV[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\r*WV[\x91\x90\x82\x03\x91\x82\x11a\r*WV[\x15a\r\xEDWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: y reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xC0\x91\x03\x12a\x03\xD4W\x81Qa\x0E\xA7\x81a\x05\x03V[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[a\x047\x93\x92``\x92`\x01\x80`\xA0\x1B\x03\x16\x82R` \x82\x01R\x81`@\x82\x01R\x01\x90a\x04\x01V[`@Q=`\0\x82>=\x90\xFD[\x91a\x08Ea\x047\x93a\x10\x1CV[\x91\x90` \x92\x83\x81\x83\x03\x12a\x03\xD4W\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x82\x11a\x03\xCFW\x01\x82`\x1F\x82\x01\x12\x15a\x03\xCAW\x80Q\x91\x82\x11a\n\xFAW`@Q\x92a\x0FQ`\x1F\x84\x01`\x1F\x19\x16\x87\x01\x85a\x0B\x1BV[\x82\x84R\x85\x83\x83\x01\x01\x11a\x0FnW\x84\x83\x94\x95a\x047\x94\x01\x91\x01a\x03\xDEV[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\x80\x91\x03\x12a\x0B\xA9W`@Qa\x0F\xDB\x81a\n\xDEV[``\x80\x82\x94\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R\x01Q\x91a\x10\x04\x83a\t\xE5V[\x01RV[\x90`\x80\x82\x82\x03\x12a\x03\xD4Wa\x047\x91a\x0F\xC3V[``\x90`@Qa\x10+\x81a\n\xDEV[`\0\x80\x82R` \x82\x01\x81\x90R`@\x82\x01\x81\x90R\x92\x01\x82\x90R\x81Ta\x10Y\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07@W`@Qc\xDC\x17\x83U`\xE0\x1B\x81R`\x04\x81\x01\x92\x90\x92R\x82\x90\x82\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07;W\x82a\x047\x93\x92a\x10\xA3W[PP` \x80\x82Q\x83\x01\x01\x91\x01a\x10\x08V[a\x10\xBF\x92P=\x80\x91\x83>a\x10\xB7\x81\x83a\x0B\x1BV[\x81\x01\x90a\x0F\x04V[8\x80a\x10\x92V[\x90\x81` \x91\x03\x12a\x03\xD4WQa\x047\x81a\t\xE5V[\x90\x81``\x91\x03\x12a\x03\xD4W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`\0T\x90\x91\x90a\x11\x10\x90a\x06\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07@W` `\x04\x91`@Q\x92\x83\x80\x92c+\xEE\x84\xF1`\xE2\x1B\x82RZ\xFA\x90\x81\x15a\x07;W`\0\x91a\x11\xC0W[P`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07@W`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x93\x90\x93R``\x90\x83\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07;W`\0\x80\x93`\0\x93a\x11\x89W[P\x92\x91\x90V[\x91\x93PPa\x11\xAF\x91P``=``\x11a\x11\xB9W[a\x11\xA7\x81\x83a\x0B\x1BV[\x81\x01\x90a\x10\xDBV[\x92\x90\x92\x918a\x11\x83V[P=a\x11\x9DV[a\x11\xE2\x91P` =` \x11a\x11\xE8W[a\x11\xDA\x81\x83a\x0B\x1BV[\x81\x01\x90a\x10\xC6V[8a\x11>V[P=a\x11\xD0V[\x91a\x0C\x0Ea\x047\x93a\x10\x1CV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\r*WV[\x92` a\x05\xEB\x84a\x128a\x120a\x05\xF4\x96\x97a\x12>\x99a$\x11V[\x85Q\x90a\x16\xAEV[\x95a$\x11V[g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x81\x01\x90\x81\x13`\x01\x16a\r*W\x90V[\x90\x81R` \x80\x82\x01\x92\x90\x92R`@\x80\x82\x01\x93\x90\x93R``\x80\x82\x01\x94\x90\x94R\x84Q`\x80\x82\x01R\x90\x84\x01Q`\xA0\x82\x01R\x90\x83\x01Q`\xC0\x82\x01R\x91\x01Q`\x01`\x01`\xA0\x1B\x03\x16`\xE0\x82\x01Ra\x01\0\x01\x90V[V[\x90\x92\x91\x85Q` \x87\x01Q`@\x88\x01Qa\x12\xC0\x90a\r\xA3V[\x91a\x12\xCB\x87\x85a$\x11V[a\x12\xD5\x82\x82a\x16\xAEV[\x92a\x12\xDF\x91a\x16\xAEV[\x89Q\x85\x89\x85\x81a\x12\xEF\x85\x8Da$TV[\x90a\x12\xF9\x91a$TV[\x90a\x13\x03\x91a$TV[\x92a\x13\r\x90a$3V[a\x13\x16\x90a\r\xB9V[\x90a\x13 \x91a\r?V[\x90a\x13*\x91a$TV[a\x133\x86a\r\xA3V[a\x13<\x91a$TV[\x92a\x13F\x8Aa\r/V[\x90a\x13P\x90a\x14zV[a\x13Y\x91a\x16\xAEV[\x91a\x13c\x90a$3V[a\x13l\x86a\r\xA3V[a\x13u\x91a$TV[a\x13\x7F\x90\x89a\r?V[\x92a\x13\x89\x91a\r\xD9V[\x91a\x13\x93\x91a$TV[\x89Qa\x13\x9E\x90a\r\xA3V[a\x13\xA7\x90a#\xF2V[a\x13\xB0\x91a\x16\xAEV[a\x13\xB9\x91a$TV[\x91\x88Qa\x13\xC5\x90a\r\xA3V[a\x13\xCE\x88a\r/V[\x92a\x13\xD9\x89\x89a$TV[\x90a\x13\xE3\x91a$TV[\x91a\x13\xED\x86a$3V[\x90a\x13\xF7\x90a\r\xA3V[a\x14\0\x91a$TV[\x92a\x14\n\x91a$TV[\x91a\x14\x14\x91a\r?V[a\x14\x1D\x91a$TV[\x90a\x14'\x84a\x14zV[\x91a\x141\x91a$\x11V[a\x14:\x91a\x14\xB7V[`\0\x13a\x14oWa\x047\x95a\x14j\x93a\x14\\\x92`@Q\x96\x87\x95` \x87\x01a\x12WV[\x03`\x1F\x19\x81\x01\x83R\x82a\x0B\x1BV[a\x1D\xBAV[PPPPPP`\0\x90V[`\x01`\xFF\x1B\x81\x14a\r*W`\0\x03\x90V[\x90\x81a\x03\xE8\x01\x91\x82\x12`\x01\x16a\r*WV[\x90\x81g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r*WV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\r*WV[\x94\x93\x92\x90\x92\x84Q\x90` \x86\x01Q`@\x87\x01Qa\x14\xEE\x90a\r\xA3V[\x92a\x14\xF9\x87\x87a$\x11V[a\x15\x03\x82\x82a\x16\xAEV[\x92a\x15\r\x91a\x16\xAEV[\x88Q\x87\x89\x85\x81a\x15\x1D\x85\x8Ca$TV[\x90a\x15'\x91a$TV[\x90a\x151\x91a$TV[\x92a\x15<\x90\x88a$TV[a\x15F\x90\x88a\r\xD9V[\x90a\x15P\x91a\r?V[\x90a\x15Z\x91a$TV[a\x15c\x87a\r\xA3V[a\x15l\x91a$TV[\x92a\x15w\x8A\x87a\r?V[\x90a\x15\x81\x90a\x14zV[a\x15\x8A\x91a\x16\xAEV[\x91a\x15\x95\x90\x86a$TV[a\x15\x9E\x87a\r\xA3V[a\x15\xA7\x91a$TV[a\x15\xB1\x90\x88a\r?V[\x92a\x15\xBB\x91a\r\xD9V[\x91a\x15\xC5\x91a$TV[\x88Qa\x15\xD0\x90a\r\xA3V[a\x15\xD9\x90a#\xF2V[a\x15\xE2\x91a\x16\xAEV[a\x15\xEB\x91a$TV[\x96Qa\x15\xF6\x90a\r\xA3V[\x93a\x16\x01\x87\x84a\r?V[\x96a\x16\x0B\x91a$TV[\x90a\x16\x15\x91a$TV[\x93a\x16\x1F\x91a$TV[\x90a\x16)\x90a\r\xA3V[a\x162\x91a$TV[\x92a\x16<\x91a$TV[\x91a\x16F\x91a\r?V[a\x16O\x91a$TV[\x91a\x16Y\x90a\x14zV[\x91a\x16c\x91a$\x11V[a\x047\x91a\x14\xB7V[a\x047\x92\x91` a\x16\x82a\x05\xF4\x93\x85Q\x90a\x16\xAEV[\x93\x01Q\x90a\x16\xAEV[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\r*W\x81\x84\x05\x14\x90\x15\x17\x15a\r*WV[a\x18[a\x047\x92}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84a\x18i\x93a\x16\xE4`\0\x82\x13a!RV[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a\x17\0\x82a$\x94V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1Da\x16\x8BV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a!\x8AV[a\x18\x8D\x90a\x18\x85a\x047\x94\x93` \x85\x01Q\x90a$\x11V[\x92Q\x90a$\x11V[\x90a$\x11V[\x90\x92\x91\x85Q`@\x87\x01Qg\r\xE0\xB6\xB3\xA7d\0\0`\0\x82\x82\x03\x92\x12\x81\x83\x12\x81\x16\x91\x83\x13\x90\x15\x16\x17a\r*Wa\x18\xC6\x83a\x14\x8BV[a\x18\xCF\x83a\x14\x9DV[a\x18\xD8\x91a\x16\xAEV[\x90\x82a\x18\xE4\x85\x89a#3V[\x90a\x18\xEE\x91a\x16\xAEV[a\x18\xF7\x81a#QV[\x92a\x19\x01\x83a\x14\x9DV[a\x19\x0B\x90\x85a#zV[a\x19\x15\x90\x89a\x11\xFCV[\x91\x82\x91a\x19!\x88a\x14\x8BV[a\x19+\x90\x88a#zV[\x93a\x195\x91a#zV[a\x19>\x87a#\x14V[a\x19G\x91a\x16\xAEV[\x92a\x19Q\x87a\x14\x9DV[a\x19[\x90\x8Ba#zV[\x91\x88a\x19f\x89a#QV[\x90a\x19p\x91a\x14\xB7V[a\x19y\x91a#zV[a\x19\x82\x86a\x14\x9DV[a\x19\x8B\x91a#zV[\x92a\x19\x95\x91a#zV[\x92a\x19\xA0\x90\x89a#zV[\x91a\x19\xAA\x91a\x11\xFCV[a\x19\xB3\x91a#zV[a\x19\xBC\x91a\x14\xB7V[\x92a\x19\xC6\x85a\x14\x8BV[a\x19\xCF\x91a#zV[\x91a\x19\xD9\x87a\x14zV[\x91a\x19\xE3\x90a\x14\x9DV[a\x19\xEC\x91a#zV[a\x19\xF5\x91a\x14\xB7V[a\x19\xFE\x91a#zV[a\x1A\x07\x91a#3V[`\0\x13a\x14oWa\x047\x95a\x1A)\x93a\x14\\\x92`@Q\x96\x87\x95` \x87\x01a\x12WV[a\x1E\xDFV[a\x1ANa\x047\x93\x92a\x1AHa\x1AU\x93` \x86\x01Q\x90a\x16\xAEV[\x90a \xD6V[\x91Qa!\x06V[\x90a\x16\xAEV[\x92\x91\x90a\x1Aqa\x1Ak\x82\x84a \xD6V[\x85a \xAAV[\x93\x81\x03\x90\x81\x11a\r*W\x92\x81\x03\x90\x81\x11a\r*W\x90V[\x92\x91\x90a\x1A\x98a\x1Ak\x82\x84a \xD6V[\x93\x81\x01\x80\x91\x11a\r*W\x92\x81\x01\x80\x91\x11a\r*W\x90V[\x92\x93\x94\x90\x91\x94`@\x82Q\x92\x01Q\x93g\r\xE0\xB6\xB3\xA7d\0\0`\0\x86\x82\x03\x96\x12\x81\x87\x12\x81\x16\x91\x87\x13\x90\x15\x16\x17a\r*W\x82\x87\x94a\x1A\xEA\x86\x85a\x14\xB7V[a\x1A\xF3\x83a\x14\x9DV[a\x1A\xFC\x91a\x16\xAEV[\x95a\x1B\x06\x91a#3V[\x90a\x1B\x10\x91a\x16\xAEV[\x93a\x1B\x1B\x85\x84a#zV[\x94a\x1B%\x87a\x14\x9DV[a\x1B/\x90\x87a#zV[a\x1B9\x90\x89a\x11\xFCV[\x92\x83\x92a\x1BF\x8B\x87a\x14\xB7V[a\x1BP\x90\x88a#zV[\x94a\x1BZ\x91a#zV[a\x1Bc\x87a#\x14V[a\x1Bl\x91a\x16\xAEV[\x93a\x1Bv\x87a\x14\x9DV[a\x1B\x80\x90\x8Ba#zV[\x92\x8Ba\x1B\x8C\x89\x89a#zV[\x90a\x1B\x96\x91a\x14\xB7V[a\x1B\x9F\x91a#zV[a\x1B\xA8\x8Aa\x14\x9DV[a\x1B\xB1\x91a#zV[\x93a\x1B\xBB\x91a#zV[\x93a\x1B\xC5\x91a#zV[\x91a\x1B\xCF\x91a\x11\xFCV[a\x1B\xD8\x91a#zV[a\x1B\xE1\x91a\x14\xB7V[\x95a\x1B\xEB\x91a\x14\xB7V[a\x1B\xF4\x91a#zV[\x92a\x1B\xFE\x90a\x14zV[\x91a\x1C\x08\x90a\x14\x9DV[a\x1C\x11\x91a#zV[a\x1C\x1A\x91a\x14\xB7V[a\x1C#\x91a#zV[a\x047\x91a#3V[\x92\x91\x90\x83a\x1CGa\x1CL\x92a\x1CG` \x86\x01Q\x86Q\x90a$\x11V[a$TV[\x90a\x1CX\x81\x83\x86a\x16lV[\x93a\x1Ce\x82\x86\x85\x84a\x12\x15V[\x85\x90`\0\x80\x82\x12\x15a\x1D.W[\x80\x82\x12a\x1D\x10WPa\x1C\xB7a\x1D\x04\x92a\x047\x96\x97\x98\x86\x93[a\x1C\x9E`@Q\x98\x89\x92\x8C\x8A` \x86\x01a#\xA9V[\x03\x96a\x1C\xB2`\x1F\x19\x98\x89\x81\x01\x83R\x82a\x0B\x1BV[a\x1F\xB6V[\x81Q`@\x80\x84\x01Q``\x94\x85\x01Q\x82Q` \x81\x01\x98\x90\x98R\x91\x87\x01\x99\x90\x99R\x92\x85\x01\x91\x90\x91R`\x80\x84\x01R`\xA0\x83\x01\x95\x90\x95R`\x01`\x01`\xA0\x1B\x03\x90\x94\x16`\xC0\x82\x01R\x92\x83\x90`\xE0\x82\x01\x90V[\x03\x90\x81\x01\x83R\x82a\x0B\x1BV[\x96a\x1D\x1B\x91Pa$uV[\x95a\x1D(\x84\x88\x87\x86a\x12\x15V[\x90a\x1CrV[\x96\x91\x96[\x80\x82\x13a\x1DNWPa\x1C\xB7a\x047\x95\x96\x97a\x1D\x04\x93\x86\x93a\x1C\x8AV[\x96a\x1DY\x91Pa!(V[\x95a\x1Df\x84\x88\x87\x86a\x12\x15V[\x90a\x1D2V[` a\x1D\x85a\x047\x94\x93a\x1AHa\x1AU\x94\x86Q\x90a\x16\xAEV[\x92\x01Qa!\x06V[\x91\x90a\x01\0\x83\x82\x03\x12a\x03\xD4W\x82Q\x92` \x81\x01Q\x92a\x047`@\x83\x01Q\x93`\x80``\x85\x01Q\x94\x01a\x0F\xC3V[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a\x1E\xBEWa\x1D\xD6\x81a%\x06V[a\x1D\xE0\x85\x83a&_V[`\0a\x1D\xEC\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1D\xFD\x85\x96\x95a\r\xC9V[`\x01\x94`\0\x91\x86\x80[a\x1E\x17W[PPPPPPPP\x90PV[\x15a\x1EzW[P\x85\x96\x97\x98P\x80\x91a\x1E8a\x1E2\x8B\x88a\r?V[`\x01\x1C\x90V[\x99a\x1EC\x8B\x87a&_V[\x90\x83a\x1EO\x87\x84a\x16\x8BV[\x13a\x1EnWPP\x89\x92[\x87a\x1Ed\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1E\x06V[\x8B\x97P\x90\x94P\x92a\x1EYV[\x86\x10\x80a\x1E\x94W[\x15a\x1E\x8DW\x88a\x1E\x1DV[\x80\x80a\x1E\x0BV[Pa\x01\0\x82\x10a\x1E\x82V[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81Ra\x03\xE8`\x04\x82\x01R`$\x81\x01\x85\x90R`D\x90\xFD[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a\x1E\xBEWa\x1E\xFB\x81a&\x80V[a\x1F\x05\x85\x83a'\xCBV[`\0a\x1F\x11\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1F\"\x85\x96\x95a\r\xC9V[`\x01\x94`\0\x91\x86\x80[a\x1F;WPPPPPPPP\x90PV[\x15a\x1F\x98W[P\x85\x96\x97\x98P\x80\x91a\x1FVa\x1E2\x8B\x88a\r?V[\x99a\x1Fa\x8B\x87a'\xCBV[\x90\x83a\x1Fm\x87\x84a\x16\x8BV[\x13a\x1F\x8CWPP\x89\x92[\x87a\x1F\x82\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1F+V[\x8B\x97P\x90\x94P\x92a\x1FwV[\x86\x10\x80a\x1F\xABW[\x15a\x1E\x8DW\x88a\x1FAV[Pa\x01\0\x82\x10a\x1F\xA0V[`\0\x93\x92\x91\x84\x91\x83\x82\x11a \x8AWa\x1F\xCE\x82\x82a'\xECV[a\x1F\xD8\x85\x83a'\xECV[`\0a\x1F\xE4\x82\x84a\x16\x8BV[\x13a\x1E\x9FWPa\x1F\xF6\x83\x86\x97\x96a\r\xD9V[`\x01\x94`\0\x91\x86\x80[a \x0FWPPPPPPPP\x90PV[\x15a lW[P\x85\x96\x97\x98P\x80\x91a *a\x1E2\x8B\x88a\r?V[\x99a 5\x8B\x87a'\xECV[\x90\x83a A\x87\x84a\x16\x8BV[\x13a `WPP\x89\x92[\x87a V\x88\x86a\r\xD9V[\x92\x01\x93\x99\x98a\x1F\xFFV[\x8B\x97P\x90\x94P\x92a KV[\x86\x10\x80a \x7FW[\x15a\x1E\x8DW\x88a \x15V[Pa\x01\0\x82\x10a tV[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x81\x01\x85\x90R`D\x90\xFD[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x05\rW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x0F\xFF\xFF\xFF\xFF\x04`\x01\x01\x90V[a\x03\xE9\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rW`\x01a\x03\xE8`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x15a!YWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a#\x0EWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\"\xDAWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[P`\0\x90V[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14\x82\x15\x15\x16\x15a\x05\rW\x05\x90V[a\x03\xE8\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x15\x82\x84\x05\x82\x14\x17`\0\x19\x90\x92\x10`\x01`\xFF\x1B\x90\x91\x13\x17\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x12\xA6\x93``\x92\x96\x95\x93`\xE0\x83\x01\x97\x83R` \x83\x01R`@\x82\x01R\x01\x90``\x90\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R\x81`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[`\x01\x81\x15\x15\x16\x15a\x05\rWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x05\rW\x04\x90V[a\x03\xE8\x90\x80\x82\x02\x91\x82\x04\x14`\x01\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[a\x03\xE7\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x05\rWa\x03\xE8\x90\x04\x90V[a$\x9F\x81\x15\x15a!RV[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x80Q\x81\x01` \x01\x90` \x01\x90a%\x1B\x91a\x1D\x8DV[\x92\x91\x90\x83Q` \x85\x01Q`@\x86\x01Qa%3\x90a\r\xA3V[\x91a%>\x86\x86a$\x11V[a%H\x82\x82a\x16\xAEV[\x92a%R\x91a\x16\xAEV[\x87Q\x86\x88\x85\x81a%b\x85\x8Ba$TV[\x90a%l\x91a$TV[\x90a%v\x91a$TV[\x92a%\x80\x90a$3V[a%\x89\x90a\r\xB9V[\x90a%\x93\x91a\r?V[\x90a%\x9D\x91a$TV[a%\xA6\x86a\r\xA3V[a%\xAF\x91a$TV[\x92a%\xB9\x89a\r/V[\x90a%\xC3\x90a\x14zV[a%\xCC\x91a\x16\xAEV[\x91a%\xD6\x90a$3V[a%\xDF\x86a\r\xA3V[a%\xE8\x91a$TV[a%\xF2\x90\x87a\r?V[\x92a%\xFC\x91a\r\xD9V[\x91a&\x06\x91a$TV[\x87Qa&\x11\x90a\r\xA3V[a&\x1A\x90a#\xF2V[a&#\x91a\x16\xAEV[a&,\x91a$TV[\x95Qa&7\x90a\r\xA3V[\x92a&A\x86a\r/V[\x95a&K\x91a$TV[\x90a&U\x91a$TV[\x92a\x16\x1F\x90a$3V[\x90a&va\x047\x92` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[\x94\x93\x92\x90\x92a\x14\xD3V[a&\x93\x90` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[`@\x81\x95\x93\x95\x94\x92\x94Q\x91\x01Q\x92g\r\xE0\xB6\xB3\xA7d\0\0`\0\x85\x82\x03\x95\x12\x81\x86\x12\x81\x16\x91\x86\x13\x90\x15\x16\x17a\r*W\x81\x86\x93a&\xCD\x85a\x14\x8BV[a&\xD6\x83a\x14\x9DV[a&\xDF\x91a\x16\xAEV[\x94a&\xE9\x91a#3V[\x90a&\xF3\x91a\x16\xAEV[\x92a&\xFD\x84a#QV[\x93a'\x07\x86a\x14\x9DV[a'\x11\x90\x86a#zV[a'\x1B\x90\x88a\x11\xFCV[\x92\x83\x92a''\x8Aa\x14\x8BV[a'1\x90\x87a#zV[\x94a';\x91a#zV[a'D\x86a#\x14V[a'M\x91a\x16\xAEV[\x93a'W\x86a\x14\x9DV[a'a\x90\x8Aa#zV[\x92\x8Aa'l\x88a#QV[\x90a'v\x91a\x14\xB7V[a'\x7F\x91a#zV[a'\x88\x89a\x14\x9DV[a'\x91\x91a#zV[\x93a'\x9B\x91a#zV[\x93a'\xA5\x91a#zV[\x91a'\xAF\x91a\x11\xFCV[a'\xB8\x91a#zV[a'\xC1\x91a\x14\xB7V[\x94a\x1B\xEB\x90a\x14\x8BV[\x90a'\xE2a\x047\x92` \x80\x82Q\x83\x01\x01\x91\x01a\x1D\x8DV[\x94\x93\x92\x90\x92a\x1A\xAFV[\x80Q\x81\x01\x91`\xE0\x82\x84\x03\x12a\x03\xD4Wa\x047\x92a(\x1A` \x84\x01Q\x93`\x80` `@\x83\x01Q\x94\x01\x91\x01a\x0F\xC3V[\x92a\x12\x15V\xFE\xA2dipfsX\"\x12 ?\x01\xAF\x86\xF2SJ\x1AP\xDB\x15\x94\x12\xAB\xAF\xF8r\x89\x07\x08\xBBf\t\xAA\x0E\xAB\x15To\x8C\xDA\xE9dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static G3MSOLVER_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct G3MSolver(::ethers::contract::Contract); - impl ::core::clone::Clone for G3MSolver { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for G3MSolver { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for G3MSolver { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for G3MSolver { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(G3MSolver)).field(&self.address()).finish() - } - } - impl G3MSolver { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - G3MSOLVER_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - G3MSOLVER_ABI.clone(), - G3MSOLVER_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `allocateGivenX` (0xee3e8cfb) function - pub fn allocate_given_x( - &self, - pool_id: ::ethers::core::types::U256, - amount_x: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([238, 62, 140, 251], (pool_id, amount_x)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allocateGivenY` (0x7f17409c) function - pub fn allocate_given_y( - &self, - pool_id: ::ethers::core::types::U256, - amount_y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([127, 23, 64, 156], (pool_id, amount_y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `calculateDiffLower` (0x332266f3) function - pub fn calculate_diff_lower( - &self, - pool_id: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - v: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([51, 34, 102, 243], (pool_id, s, v)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `calculateDiffRaise` (0x902ecaa2) function - pub fn calculate_diff_raise( - &self, - pool_id: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - v: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([144, 46, 202, 162], (pool_id, s, v)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkSwapConstant` (0x0f4166b8) function - pub fn check_swap_constant( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([15, 65, 102, 184], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeOptimalArbLowerPrice` (0x306db46b) function - pub fn compute_optimal_arb_lower_price( - &self, - pool_id: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - v_upper: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([48, 109, 180, 107], (pool_id, s, v_upper)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeOptimalArbRaisePrice` (0x4fd67c58) function - pub fn compute_optimal_arb_raise_price( - &self, - pool_id: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - v_upper: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([79, 214, 124, 88], (pool_id, s, v_upper)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deallocateGivenX` (0x6237569f) function - pub fn deallocate_given_x( - &self, - pool_id: ::ethers::core::types::U256, - amount_x: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([98, 55, 86, 159], (pool_id, amount_x)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deallocateGivenY` (0xf30d37f2) function - pub fn deallocate_given_y( - &self, - pool_id: ::ethers::core::types::U256, - amount_y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([243, 13, 55, 242], (pool_id, amount_y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fetchPoolParams` (0x81b5fac2) function - pub fn fetch_pool_params( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([129, 181, 250, 194], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getInitialPoolData` (0xdef15f92) function - pub fn get_initial_pool_data( - &self, - rx: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - params: G3Mparams, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([222, 241, 95, 146], (rx, s, params)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNextLiquidity` (0xec29d8e6) function - pub fn get_next_liquidity( - &self, - pool_id: ::ethers::core::types::U256, - rx: ::ethers::core::types::U256, - ry: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([236, 41, 216, 230], (pool_id, rx, ry)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNextReserveX` (0x5a93b8ce) function - pub fn get_next_reserve_x( - &self, - pool_id: ::ethers::core::types::U256, - ry: ::ethers::core::types::U256, - l: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([90, 147, 184, 206], (pool_id, ry, l)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNextReserveY` (0xf2de7a7b) function - pub fn get_next_reserve_y( - &self, - pool_id: ::ethers::core::types::U256, - rx: ::ethers::core::types::U256, - l: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([242, 222, 122, 123], (pool_id, rx, l)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReservesAndLiquidity` (0xce153bf4) function - pub fn get_reserves_and_liquidity( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([206, 21, 59, 244], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `internalPrice` (0x3b4d1030) function - pub fn internal_price( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([59, 77, 16, 48], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `prepareControllerUpdate` (0xcb1f5532) function - pub fn prepare_controller_update( - &self, - controller: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([203, 31, 85, 50], controller) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `prepareFeeUpdate` (0xb09d04e5) function - pub fn prepare_fee_update( - &self, - swap_fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([176, 157, 4, 229], swap_fee) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `prepareWeightXUpdate` (0x250968d9) function - pub fn prepare_weight_x_update( - &self, - target_weight_x: ::ethers::core::types::U256, - target_timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([37, 9, 104, 217], (target_weight_x, target_timestamp)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `simulateSwap` (0x3928ff97) function - pub fn simulate_swap( - &self, - pool_id: ::ethers::core::types::U256, - swap_x_in: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::Bytes, - ), - > { - self.0 - .method_hash([57, 40, 255, 151], (pool_id, swap_x_in, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `strategy` (0xa8c62e76) function - pub fn strategy( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([168, 198, 46, 118], ()) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for G3MSolver { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `BisectionLib_InvalidBounds` with signature `BisectionLib_InvalidBounds(uint256,uint256)` and selector `0x6105bfb6` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "BisectionLib_InvalidBounds", - abi = "BisectionLib_InvalidBounds(uint256,uint256)" - )] - pub struct BisectionLib_InvalidBounds { - pub lower: ::ethers::core::types::U256, - pub upper: ::ethers::core::types::U256, - } - ///Custom Error type `BisectionLib_RootOutsideBounds` with signature `BisectionLib_RootOutsideBounds(int256,int256)` and selector `0x1bc6f974` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "BisectionLib_RootOutsideBounds", - abi = "BisectionLib_RootOutsideBounds(int256,int256)" - )] - pub struct BisectionLib_RootOutsideBounds { - pub lower_result: ::ethers::core::types::I256, - pub upper_result: ::ethers::core::types::I256, - } - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum G3MSolverErrors { - BisectionLib_InvalidBounds(BisectionLib_InvalidBounds), - BisectionLib_RootOutsideBounds(BisectionLib_RootOutsideBounds), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for G3MSolverErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BisectionLib_InvalidBounds(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BisectionLib_RootOutsideBounds(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for G3MSolverErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::BisectionLib_InvalidBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::BisectionLib_RootOutsideBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for G3MSolverErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for G3MSolverErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::BisectionLib_InvalidBounds(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::BisectionLib_RootOutsideBounds(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for G3MSolverErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for G3MSolverErrors { - fn from(value: BisectionLib_InvalidBounds) -> Self { - Self::BisectionLib_InvalidBounds(value) - } - } - impl ::core::convert::From for G3MSolverErrors { - fn from(value: BisectionLib_RootOutsideBounds) -> Self { - Self::BisectionLib_RootOutsideBounds(value) - } - } - ///Container type for all input parameters for the `allocateGivenX` function with signature `allocateGivenX(uint256,uint256)` and selector `0xee3e8cfb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allocateGivenX", abi = "allocateGivenX(uint256,uint256)")] - pub struct AllocateGivenXCall { - pub pool_id: ::ethers::core::types::U256, - pub amount_x: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `allocateGivenY` function with signature `allocateGivenY(uint256,uint256)` and selector `0x7f17409c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allocateGivenY", abi = "allocateGivenY(uint256,uint256)")] - pub struct AllocateGivenYCall { - pub pool_id: ::ethers::core::types::U256, - pub amount_y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `calculateDiffLower` function with signature `calculateDiffLower(uint256,uint256,uint256)` and selector `0x332266f3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "calculateDiffLower", - abi = "calculateDiffLower(uint256,uint256,uint256)" - )] - pub struct CalculateDiffLowerCall { - pub pool_id: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - pub v: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `calculateDiffRaise` function with signature `calculateDiffRaise(uint256,uint256,uint256)` and selector `0x902ecaa2` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "calculateDiffRaise", - abi = "calculateDiffRaise(uint256,uint256,uint256)" - )] - pub struct CalculateDiffRaiseCall { - pub pool_id: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - pub v: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `checkSwapConstant` function with signature `checkSwapConstant(uint256,bytes)` and selector `0x0f4166b8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "checkSwapConstant", abi = "checkSwapConstant(uint256,bytes)")] - pub struct CheckSwapConstantCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `computeOptimalArbLowerPrice` function with signature `computeOptimalArbLowerPrice(uint256,uint256,uint256)` and selector `0x306db46b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "computeOptimalArbLowerPrice", - abi = "computeOptimalArbLowerPrice(uint256,uint256,uint256)" - )] - pub struct ComputeOptimalArbLowerPriceCall { - pub pool_id: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - pub v_upper: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeOptimalArbRaisePrice` function with signature `computeOptimalArbRaisePrice(uint256,uint256,uint256)` and selector `0x4fd67c58` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "computeOptimalArbRaisePrice", - abi = "computeOptimalArbRaisePrice(uint256,uint256,uint256)" - )] - pub struct ComputeOptimalArbRaisePriceCall { - pub pool_id: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - pub v_upper: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deallocateGivenX` function with signature `deallocateGivenX(uint256,uint256)` and selector `0x6237569f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deallocateGivenX", abi = "deallocateGivenX(uint256,uint256)")] - pub struct DeallocateGivenXCall { - pub pool_id: ::ethers::core::types::U256, - pub amount_x: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deallocateGivenY` function with signature `deallocateGivenY(uint256,uint256)` and selector `0xf30d37f2` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deallocateGivenY", abi = "deallocateGivenY(uint256,uint256)")] - pub struct DeallocateGivenYCall { - pub pool_id: ::ethers::core::types::U256, - pub amount_y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `fetchPoolParams` function with signature `fetchPoolParams(uint256)` and selector `0x81b5fac2` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "fetchPoolParams", abi = "fetchPoolParams(uint256)")] - pub struct FetchPoolParamsCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getInitialPoolData` function with signature `getInitialPoolData(uint256,uint256,(uint256,uint256,uint256,address))` and selector `0xdef15f92` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getInitialPoolData", - abi = "getInitialPoolData(uint256,uint256,(uint256,uint256,uint256,address))" - )] - pub struct GetInitialPoolDataCall { - pub rx: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - pub params: G3Mparams, - } - ///Container type for all input parameters for the `getNextLiquidity` function with signature `getNextLiquidity(uint256,uint256,uint256)` and selector `0xec29d8e6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getNextLiquidity", - abi = "getNextLiquidity(uint256,uint256,uint256)" - )] - pub struct GetNextLiquidityCall { - pub pool_id: ::ethers::core::types::U256, - pub rx: ::ethers::core::types::U256, - pub ry: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNextReserveX` function with signature `getNextReserveX(uint256,uint256,uint256)` and selector `0x5a93b8ce` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getNextReserveX", - abi = "getNextReserveX(uint256,uint256,uint256)" - )] - pub struct GetNextReserveXCall { - pub pool_id: ::ethers::core::types::U256, - pub ry: ::ethers::core::types::U256, - pub l: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNextReserveY` function with signature `getNextReserveY(uint256,uint256,uint256)` and selector `0xf2de7a7b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getNextReserveY", - abi = "getNextReserveY(uint256,uint256,uint256)" - )] - pub struct GetNextReserveYCall { - pub pool_id: ::ethers::core::types::U256, - pub rx: ::ethers::core::types::U256, - pub l: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getReservesAndLiquidity` function with signature `getReservesAndLiquidity(uint256)` and selector `0xce153bf4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getReservesAndLiquidity", - abi = "getReservesAndLiquidity(uint256)" - )] - pub struct GetReservesAndLiquidityCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `internalPrice` function with signature `internalPrice(uint256)` and selector `0x3b4d1030` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "internalPrice", abi = "internalPrice(uint256)")] - pub struct InternalPriceCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `prepareControllerUpdate` function with signature `prepareControllerUpdate(address)` and selector `0xcb1f5532` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "prepareControllerUpdate", - abi = "prepareControllerUpdate(address)" - )] - pub struct PrepareControllerUpdateCall { - pub controller: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `prepareFeeUpdate` function with signature `prepareFeeUpdate(uint256)` and selector `0xb09d04e5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "prepareFeeUpdate", abi = "prepareFeeUpdate(uint256)")] - pub struct PrepareFeeUpdateCall { - pub swap_fee: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `prepareWeightXUpdate` function with signature `prepareWeightXUpdate(uint256,uint256)` and selector `0x250968d9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "prepareWeightXUpdate", - abi = "prepareWeightXUpdate(uint256,uint256)" - )] - pub struct PrepareWeightXUpdateCall { - pub target_weight_x: ::ethers::core::types::U256, - pub target_timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `simulateSwap` function with signature `simulateSwap(uint256,bool,uint256)` and selector `0x3928ff97` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "simulateSwap", abi = "simulateSwap(uint256,bool,uint256)")] - pub struct SimulateSwapCall { - pub pool_id: ::ethers::core::types::U256, - pub swap_x_in: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `strategy` function with signature `strategy()` and selector `0xa8c62e76` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "strategy", abi = "strategy()")] - pub struct StrategyCall; - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum G3MSolverCalls { - AllocateGivenX(AllocateGivenXCall), - AllocateGivenY(AllocateGivenYCall), - CalculateDiffLower(CalculateDiffLowerCall), - CalculateDiffRaise(CalculateDiffRaiseCall), - CheckSwapConstant(CheckSwapConstantCall), - ComputeOptimalArbLowerPrice(ComputeOptimalArbLowerPriceCall), - ComputeOptimalArbRaisePrice(ComputeOptimalArbRaisePriceCall), - DeallocateGivenX(DeallocateGivenXCall), - DeallocateGivenY(DeallocateGivenYCall), - FetchPoolParams(FetchPoolParamsCall), - GetInitialPoolData(GetInitialPoolDataCall), - GetNextLiquidity(GetNextLiquidityCall), - GetNextReserveX(GetNextReserveXCall), - GetNextReserveY(GetNextReserveYCall), - GetReservesAndLiquidity(GetReservesAndLiquidityCall), - InternalPrice(InternalPriceCall), - PrepareControllerUpdate(PrepareControllerUpdateCall), - PrepareFeeUpdate(PrepareFeeUpdateCall), - PrepareWeightXUpdate(PrepareWeightXUpdateCall), - SimulateSwap(SimulateSwapCall), - Strategy(StrategyCall), - } - impl ::ethers::core::abi::AbiDecode for G3MSolverCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::AllocateGivenX(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::AllocateGivenY(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::CalculateDiffLower(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::CalculateDiffRaise(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::CheckSwapConstant(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ComputeOptimalArbLowerPrice(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ComputeOptimalArbRaisePrice(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DeallocateGivenX(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DeallocateGivenY(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::FetchPoolParams(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetInitialPoolData(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetNextLiquidity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetNextReserveX(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetNextReserveY(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetReservesAndLiquidity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InternalPrice(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PrepareControllerUpdate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PrepareFeeUpdate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PrepareWeightXUpdate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SimulateSwap(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Strategy(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for G3MSolverCalls { - fn encode(self) -> Vec { - match self { - Self::AllocateGivenX(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::AllocateGivenY(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CalculateDiffLower(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CalculateDiffRaise(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CheckSwapConstant(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ComputeOptimalArbLowerPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ComputeOptimalArbRaisePrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DeallocateGivenX(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DeallocateGivenY(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::FetchPoolParams(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetInitialPoolData(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetNextLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetNextReserveX(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetNextReserveY(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetReservesAndLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InternalPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PrepareControllerUpdate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PrepareFeeUpdate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PrepareWeightXUpdate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SimulateSwap(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Strategy(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for G3MSolverCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateGivenX(element) => ::core::fmt::Display::fmt(element, f), - Self::AllocateGivenY(element) => ::core::fmt::Display::fmt(element, f), - Self::CalculateDiffLower(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::CalculateDiffRaise(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::CheckSwapConstant(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeOptimalArbLowerPrice(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::ComputeOptimalArbRaisePrice(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DeallocateGivenX(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateGivenY(element) => ::core::fmt::Display::fmt(element, f), - Self::FetchPoolParams(element) => ::core::fmt::Display::fmt(element, f), - Self::GetInitialPoolData(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::GetNextLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNextReserveX(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNextReserveY(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReservesAndLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InternalPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::PrepareControllerUpdate(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::PrepareFeeUpdate(element) => ::core::fmt::Display::fmt(element, f), - Self::PrepareWeightXUpdate(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SimulateSwap(element) => ::core::fmt::Display::fmt(element, f), - Self::Strategy(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: AllocateGivenXCall) -> Self { - Self::AllocateGivenX(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: AllocateGivenYCall) -> Self { - Self::AllocateGivenY(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: CalculateDiffLowerCall) -> Self { - Self::CalculateDiffLower(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: CalculateDiffRaiseCall) -> Self { - Self::CalculateDiffRaise(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: CheckSwapConstantCall) -> Self { - Self::CheckSwapConstant(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: ComputeOptimalArbLowerPriceCall) -> Self { - Self::ComputeOptimalArbLowerPrice(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: ComputeOptimalArbRaisePriceCall) -> Self { - Self::ComputeOptimalArbRaisePrice(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: DeallocateGivenXCall) -> Self { - Self::DeallocateGivenX(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: DeallocateGivenYCall) -> Self { - Self::DeallocateGivenY(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: FetchPoolParamsCall) -> Self { - Self::FetchPoolParams(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: GetInitialPoolDataCall) -> Self { - Self::GetInitialPoolData(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: GetNextLiquidityCall) -> Self { - Self::GetNextLiquidity(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: GetNextReserveXCall) -> Self { - Self::GetNextReserveX(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: GetNextReserveYCall) -> Self { - Self::GetNextReserveY(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: GetReservesAndLiquidityCall) -> Self { - Self::GetReservesAndLiquidity(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: InternalPriceCall) -> Self { - Self::InternalPrice(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: PrepareControllerUpdateCall) -> Self { - Self::PrepareControllerUpdate(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: PrepareFeeUpdateCall) -> Self { - Self::PrepareFeeUpdate(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: PrepareWeightXUpdateCall) -> Self { - Self::PrepareWeightXUpdate(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: SimulateSwapCall) -> Self { - Self::SimulateSwap(value) - } - } - impl ::core::convert::From for G3MSolverCalls { - fn from(value: StrategyCall) -> Self { - Self::Strategy(value) - } - } - ///Container type for all return fields from the `allocateGivenX` function with signature `allocateGivenX(uint256,uint256)` and selector `0xee3e8cfb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllocateGivenXReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `allocateGivenY` function with signature `allocateGivenY(uint256,uint256)` and selector `0x7f17409c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllocateGivenYReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `calculateDiffLower` function with signature `calculateDiffLower(uint256,uint256,uint256)` and selector `0x332266f3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CalculateDiffLowerReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `calculateDiffRaise` function with signature `calculateDiffRaise(uint256,uint256,uint256)` and selector `0x902ecaa2` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CalculateDiffRaiseReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `checkSwapConstant` function with signature `checkSwapConstant(uint256,bytes)` and selector `0x0f4166b8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CheckSwapConstantReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `computeOptimalArbLowerPrice` function with signature `computeOptimalArbLowerPrice(uint256,uint256,uint256)` and selector `0x306db46b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeOptimalArbLowerPriceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `computeOptimalArbRaisePrice` function with signature `computeOptimalArbRaisePrice(uint256,uint256,uint256)` and selector `0x4fd67c58` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeOptimalArbRaisePriceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `deallocateGivenX` function with signature `deallocateGivenX(uint256,uint256)` and selector `0x6237569f` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DeallocateGivenXReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `deallocateGivenY` function with signature `deallocateGivenY(uint256,uint256)` and selector `0xf30d37f2` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DeallocateGivenYReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `fetchPoolParams` function with signature `fetchPoolParams(uint256)` and selector `0x81b5fac2` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct FetchPoolParamsReturn(pub G3Mparams); - ///Container type for all return fields from the `getInitialPoolData` function with signature `getInitialPoolData(uint256,uint256,(uint256,uint256,uint256,address))` and selector `0xdef15f92` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetInitialPoolDataReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `getNextLiquidity` function with signature `getNextLiquidity(uint256,uint256,uint256)` and selector `0xec29d8e6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetNextLiquidityReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getNextReserveX` function with signature `getNextReserveX(uint256,uint256,uint256)` and selector `0x5a93b8ce` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetNextReserveXReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getNextReserveY` function with signature `getNextReserveY(uint256,uint256,uint256)` and selector `0xf2de7a7b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetNextReserveYReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getReservesAndLiquidity` function with signature `getReservesAndLiquidity(uint256)` and selector `0xce153bf4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetReservesAndLiquidityReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `internalPrice` function with signature `internalPrice(uint256)` and selector `0x3b4d1030` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InternalPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `prepareControllerUpdate` function with signature `prepareControllerUpdate(address)` and selector `0xcb1f5532` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PrepareControllerUpdateReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `prepareFeeUpdate` function with signature `prepareFeeUpdate(uint256)` and selector `0xb09d04e5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PrepareFeeUpdateReturn { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all return fields from the `prepareWeightXUpdate` function with signature `prepareWeightXUpdate(uint256,uint256)` and selector `0x250968d9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PrepareWeightXUpdateReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `simulateSwap` function with signature `simulateSwap(uint256,bool,uint256)` and selector `0x3928ff97` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SimulateSwapReturn( - pub bool, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::Bytes, - ); - ///Container type for all return fields from the `strategy` function with signature `strategy()` and selector `0xa8c62e76` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct StrategyReturn(pub ::ethers::core::types::Address); - ///`G3Mparams(uint256,uint256,uint256,address)` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct G3Mparams { - pub w_x: ::ethers::core::types::U256, - pub w_y: ::ethers::core::types::U256, - pub swap_fee: ::ethers::core::types::U256, - pub controller: ::ethers::core::types::Address, - } -} diff --git a/crates/bindings/src/gaussian.rs b/crates/bindings/src/gaussian.rs deleted file mode 100644 index 6bced09d3..000000000 --- a/crates/bindings/src/gaussian.rs +++ /dev/null @@ -1,305 +0,0 @@ -pub use gaussian::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod gaussian { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Infinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Infinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("OutOfBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("OutOfBounds"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static GAUSSIAN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x1BW`@Q`\x94\x90\x81a\0i\x8290\x81PP\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 v\xE2Z\x9B\xC6v\xD1#66\xDF\x16\xD6,\xDCw\xBB#\xB7\x07\x16\xBBTU\x0CO&v8\xE4\x07\x1FdsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static GAUSSIAN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 v\xE2Z\x9B\xC6v\xD1#66\xDF\x16\xD6,\xDCw\xBB#\xB7\x07\x16\xBBTU\x0CO&v8\xE4\x07\x1FdsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static GAUSSIAN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct Gaussian(::ethers::contract::Contract); - impl ::core::clone::Clone for Gaussian { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Gaussian { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Gaussian { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Gaussian { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Gaussian)).field(&self.address()).finish() - } - } - impl Gaussian { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - GAUSSIAN_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - GAUSSIAN_ABI.clone(), - GAUSSIAN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for Gaussian { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum GaussianErrors { - Infinity(Infinity), - NegativeInfinity(NegativeInfinity), - OutOfBounds(OutOfBounds), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for GaussianErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::OutOfBounds(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for GaussianErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::Infinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NegativeInfinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::OutOfBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for GaussianErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for GaussianErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for GaussianErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } -} diff --git a/crates/bindings/src/i_strategy.rs b/crates/bindings/src/i_strategy.rs deleted file mode 100644 index c2303b917..000000000 --- a/crates/bindings/src/i_strategy.rs +++ /dev/null @@ -1,1102 +0,0 @@ -pub use i_strategy::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod i_strategy { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("computeSwapConstant"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "computeSwapConstant", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("dfmm"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("dfmm"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPoolParams"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getPoolParams"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("params"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("init"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("init"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "swapConstantGrowth", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("update"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("update"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("validateAllocateOrDeallocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "validateAllocateOrDeallocate", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("invariant"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("validateSwap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("validateSwap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "swapConstantGrowth", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("liquidityDelta"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("InvalidSender"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidSender"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidUpdateCode"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidUpdateCode"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("NotDFMM"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NotDFMM"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static ISTRATEGY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct IStrategy(::ethers::contract::Contract); - impl ::core::clone::Clone for IStrategy { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IStrategy { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IStrategy { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IStrategy { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(IStrategy)).field(&self.address()).finish() - } - } - impl IStrategy { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - ISTRATEGY_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `computeSwapConstant` (0x002e524b) function - pub fn compute_swap_constant( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([0, 46, 82, 75], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `dfmm` (0xafba13c4) function - pub fn dfmm( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([175, 186, 19, 196], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolParams` (0xdc178355) function - pub fn get_pool_params( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([220, 23, 131, 85], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `init` (0x73cb2d03) function - pub fn init( - &self, - sender: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([115, 203, 45, 3], (sender, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `update` (0xacad2989) function - pub fn update( - &self, - sender: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([172, 173, 41, 137], (sender, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateAllocateOrDeallocate` (0x8a04bdd5) function - pub fn validate_allocate_or_deallocate( - &self, - sender: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([138, 4, 189, 213], (sender, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateSwap` (0x68bd3e38) function - pub fn validate_swap( - &self, - sender: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([104, 189, 62, 56], (sender, pool_id, data)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IStrategy { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `InvalidSender` with signature `InvalidSender()` and selector `0xddb5de5e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSender", abi = "InvalidSender()")] - pub struct InvalidSender; - ///Custom Error type `InvalidUpdateCode` with signature `InvalidUpdateCode()` and selector `0x235d2b3d` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidUpdateCode", abi = "InvalidUpdateCode()")] - pub struct InvalidUpdateCode; - ///Custom Error type `NotDFMM` with signature `NotDFMM()` and selector `0x6853cba7` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NotDFMM", abi = "NotDFMM()")] - pub struct NotDFMM; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum IStrategyErrors { - InvalidSender(InvalidSender), - InvalidUpdateCode(InvalidUpdateCode), - NotDFMM(NotDFMM), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for IStrategyErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidSender(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidUpdateCode(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NotDFMM(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IStrategyErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::InvalidSender(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidUpdateCode(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NotDFMM(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for IStrategyErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for IStrategyErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::InvalidSender(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidUpdateCode(element) => ::core::fmt::Display::fmt(element, f), - Self::NotDFMM(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for IStrategyErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for IStrategyErrors { - fn from(value: InvalidSender) -> Self { - Self::InvalidSender(value) - } - } - impl ::core::convert::From for IStrategyErrors { - fn from(value: InvalidUpdateCode) -> Self { - Self::InvalidUpdateCode(value) - } - } - impl ::core::convert::From for IStrategyErrors { - fn from(value: NotDFMM) -> Self { - Self::NotDFMM(value) - } - } - ///Container type for all input parameters for the `computeSwapConstant` function with signature `computeSwapConstant(uint256,bytes)` and selector `0x002e524b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "computeSwapConstant", abi = "computeSwapConstant(uint256,bytes)")] - pub struct ComputeSwapConstantCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `dfmm` function with signature `dfmm()` and selector `0xafba13c4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "dfmm", abi = "dfmm()")] - pub struct DfmmCall; - ///Container type for all input parameters for the `getPoolParams` function with signature `getPoolParams(uint256)` and selector `0xdc178355` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolParams", abi = "getPoolParams(uint256)")] - pub struct GetPoolParamsCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `init` function with signature `init(address,uint256,bytes)` and selector `0x73cb2d03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "init", abi = "init(address,uint256,bytes)")] - pub struct InitCall { - pub sender: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `update` function with signature `update(address,uint256,bytes)` and selector `0xacad2989` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "update", abi = "update(address,uint256,bytes)")] - pub struct UpdateCall { - pub sender: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `validateAllocateOrDeallocate` function with signature `validateAllocateOrDeallocate(address,uint256,bytes)` and selector `0x8a04bdd5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "validateAllocateOrDeallocate", - abi = "validateAllocateOrDeallocate(address,uint256,bytes)" - )] - pub struct ValidateAllocateOrDeallocateCall { - pub sender: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `validateSwap` function with signature `validateSwap(address,uint256,bytes)` and selector `0x68bd3e38` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "validateSwap", abi = "validateSwap(address,uint256,bytes)")] - pub struct ValidateSwapCall { - pub sender: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum IStrategyCalls { - ComputeSwapConstant(ComputeSwapConstantCall), - Dfmm(DfmmCall), - GetPoolParams(GetPoolParamsCall), - Init(InitCall), - Update(UpdateCall), - ValidateAllocateOrDeallocate(ValidateAllocateOrDeallocateCall), - ValidateSwap(ValidateSwapCall), - } - impl ::ethers::core::abi::AbiDecode for IStrategyCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ComputeSwapConstant(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Dfmm(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPoolParams(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Init(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Update(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ValidateAllocateOrDeallocate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ValidateSwap(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IStrategyCalls { - fn encode(self) -> Vec { - match self { - Self::ComputeSwapConstant(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Dfmm(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolParams(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Init(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Update(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ValidateAllocateOrDeallocate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ValidateSwap(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IStrategyCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ComputeSwapConstant(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Dfmm(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolParams(element) => ::core::fmt::Display::fmt(element, f), - Self::Init(element) => ::core::fmt::Display::fmt(element, f), - Self::Update(element) => ::core::fmt::Display::fmt(element, f), - Self::ValidateAllocateOrDeallocate(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::ValidateSwap(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IStrategyCalls { - fn from(value: ComputeSwapConstantCall) -> Self { - Self::ComputeSwapConstant(value) - } - } - impl ::core::convert::From for IStrategyCalls { - fn from(value: DfmmCall) -> Self { - Self::Dfmm(value) - } - } - impl ::core::convert::From for IStrategyCalls { - fn from(value: GetPoolParamsCall) -> Self { - Self::GetPoolParams(value) - } - } - impl ::core::convert::From for IStrategyCalls { - fn from(value: InitCall) -> Self { - Self::Init(value) - } - } - impl ::core::convert::From for IStrategyCalls { - fn from(value: UpdateCall) -> Self { - Self::Update(value) - } - } - impl ::core::convert::From for IStrategyCalls { - fn from(value: ValidateAllocateOrDeallocateCall) -> Self { - Self::ValidateAllocateOrDeallocate(value) - } - } - impl ::core::convert::From for IStrategyCalls { - fn from(value: ValidateSwapCall) -> Self { - Self::ValidateSwap(value) - } - } - ///Container type for all return fields from the `computeSwapConstant` function with signature `computeSwapConstant(uint256,bytes)` and selector `0x002e524b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeSwapConstantReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `dfmm` function with signature `dfmm()` and selector `0xafba13c4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DfmmReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getPoolParams` function with signature `getPoolParams(uint256)` and selector `0xdc178355` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolParamsReturn { - pub params: ::ethers::core::types::Bytes, - } - ///Container type for all return fields from the `init` function with signature `init(address,uint256,bytes)` and selector `0x73cb2d03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InitReturn { - pub valid: bool, - pub swap_constant_growth: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `validateAllocateOrDeallocate` function with signature `validateAllocateOrDeallocate(address,uint256,bytes)` and selector `0x8a04bdd5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ValidateAllocateOrDeallocateReturn { - pub valid: bool, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `validateSwap` function with signature `validateSwap(address,uint256,bytes)` and selector `0x68bd3e38` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ValidateSwapReturn { - pub valid: bool, - pub swap_constant_growth: ::ethers::core::types::I256, - pub liquidity_delta: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } -} diff --git a/crates/bindings/src/idfmm.rs b/crates/bindings/src/idfmm.rs deleted file mode 100644 index 47f66d5ae..000000000 --- a/crates/bindings/src/idfmm.rs +++ /dev/null @@ -1,1794 +0,0 @@ -pub use idfmm::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod idfmm { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("allocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allocate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deltaX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deltaY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deltaL"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("deallocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("deallocate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deltaX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deltaY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deltaL"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getReservesAndLiquidity"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "getReservesAndLiquidity", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveXWad"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveYWad"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("init"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("init"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("params"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct IDFMM.InitParams"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("lpTokenImplementation"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "lpTokenImplementation", - ), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("pools"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("pools"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("strategy"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("tokenX"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("tokenY"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("liquidityToken"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("swap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("swap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("inputAmount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("outputAmount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("update"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("update"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Allocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Allocate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaL"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Deallocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Deallocate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("deltaL"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Init"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Init"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("strategy"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("tokenX"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("tokenY"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Swap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Swap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("isSwapXForY"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("inputAmount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("outputAmount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("ERC1167FailedCreateClone"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "ERC1167FailedCreateClone", - ), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Invalid"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Invalid"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("negative"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "swapConstantGrowth", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidSwap"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidSwap"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidSwapInputTransfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "InvalidSwapInputTransfer", - ), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidSwapOutputTransfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "InvalidSwapOutputTransfer", - ), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidTokens"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidTokens"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Locked"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Locked"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static IDFMM_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct IDFMM(::ethers::contract::Contract); - impl ::core::clone::Clone for IDFMM { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IDFMM { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IDFMM { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IDFMM { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(IDFMM)).field(&self.address()).finish() - } - } - impl IDFMM { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IDFMM_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `allocate` (0x2ec38188) function - pub fn allocate( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([46, 195, 129, 136], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deallocate` (0x9d942f9a) function - pub fn deallocate( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([157, 148, 47, 154], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReservesAndLiquidity` (0xce153bf4) function - pub fn get_reserves_and_liquidity( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([206, 21, 59, 244], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `init` (0x1455f1fc) function - pub fn init( - &self, - params: InitParams, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([20, 85, 241, 252], (params,)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `lpTokenImplementation` (0xb462cd25) function - pub fn lp_token_implementation( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([180, 98, 205, 37], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0xac4afa38) function - pub fn pools( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - ::ethers::core::types::Address, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::Address, - ), - > { - self.0 - .method_hash([172, 74, 250, 56], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `swap` (0xbd0625ab) function - pub fn swap( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([189, 6, 37, 171], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `update` (0x0216b838) function - pub fn update( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([2, 22, 184, 56], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - AllocateFilter, - > { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DeallocateFilter, - > { - self.0.event() - } - ///Gets the contract's `Init` event - pub fn init_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, InitFilter> { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IDFMMEvents> { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IDFMM { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `ERC1167FailedCreateClone` with signature `ERC1167FailedCreateClone()` and selector `0xc2f868f4` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ERC1167FailedCreateClone", abi = "ERC1167FailedCreateClone()")] - pub struct ERC1167FailedCreateClone; - ///Custom Error type `Invalid` with signature `Invalid(bool,uint256)` and selector `0xeec0da52` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Invalid", abi = "Invalid(bool,uint256)")] - pub struct Invalid { - pub negative: bool, - pub swap_constant_growth: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidSwap` with signature `InvalidSwap()` and selector `0x11157667` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSwap", abi = "InvalidSwap()")] - pub struct InvalidSwap; - ///Custom Error type `InvalidSwapInputTransfer` with signature `InvalidSwapInputTransfer()` and selector `0x80f64074` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSwapInputTransfer", abi = "InvalidSwapInputTransfer()")] - pub struct InvalidSwapInputTransfer; - ///Custom Error type `InvalidSwapOutputTransfer` with signature `InvalidSwapOutputTransfer()` and selector `0xf3cbbc87` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSwapOutputTransfer", abi = "InvalidSwapOutputTransfer()")] - pub struct InvalidSwapOutputTransfer; - ///Custom Error type `InvalidTokens` with signature `InvalidTokens()` and selector `0x672215de` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidTokens", abi = "InvalidTokens()")] - pub struct InvalidTokens; - ///Custom Error type `Locked` with signature `Locked()` and selector `0x0f2e5b6c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Locked", abi = "Locked()")] - pub struct Locked; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum IDFMMErrors { - ERC1167FailedCreateClone(ERC1167FailedCreateClone), - Invalid(Invalid), - InvalidSwap(InvalidSwap), - InvalidSwapInputTransfer(InvalidSwapInputTransfer), - InvalidSwapOutputTransfer(InvalidSwapOutputTransfer), - InvalidTokens(InvalidTokens), - Locked(Locked), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for IDFMMErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ERC1167FailedCreateClone(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Invalid(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidSwap(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidSwapInputTransfer(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidSwapOutputTransfer(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidTokens(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Locked(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IDFMMErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::ERC1167FailedCreateClone(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Invalid(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidSwap(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidSwapInputTransfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidSwapOutputTransfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidTokens(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Locked(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for IDFMMErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for IDFMMErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ERC1167FailedCreateClone(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Invalid(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidSwap(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidSwapInputTransfer(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InvalidSwapOutputTransfer(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InvalidTokens(element) => ::core::fmt::Display::fmt(element, f), - Self::Locked(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for IDFMMErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for IDFMMErrors { - fn from(value: ERC1167FailedCreateClone) -> Self { - Self::ERC1167FailedCreateClone(value) - } - } - impl ::core::convert::From for IDFMMErrors { - fn from(value: Invalid) -> Self { - Self::Invalid(value) - } - } - impl ::core::convert::From for IDFMMErrors { - fn from(value: InvalidSwap) -> Self { - Self::InvalidSwap(value) - } - } - impl ::core::convert::From for IDFMMErrors { - fn from(value: InvalidSwapInputTransfer) -> Self { - Self::InvalidSwapInputTransfer(value) - } - } - impl ::core::convert::From for IDFMMErrors { - fn from(value: InvalidSwapOutputTransfer) -> Self { - Self::InvalidSwapOutputTransfer(value) - } - } - impl ::core::convert::From for IDFMMErrors { - fn from(value: InvalidTokens) -> Self { - Self::InvalidTokens(value) - } - } - impl ::core::convert::From for IDFMMErrors { - fn from(value: Locked) -> Self { - Self::Locked(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(address,uint256,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub delta_x: ::ethers::core::types::U256, - pub delta_y: ::ethers::core::types::U256, - pub delta_l: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(address,uint256,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub delta_x: ::ethers::core::types::U256, - pub delta_y: ::ethers::core::types::U256, - pub delta_l: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Init", - abi = "Init(address,address,address,address,uint256,uint256,uint256,uint256)" - )] - pub struct InitFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub strategy: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_x: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_y: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Swap", abi = "Swap(address,uint256,bool,uint256,uint256)")] - pub struct SwapFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub pool_id: ::ethers::core::types::U256, - pub is_swap_x_for_y: bool, - pub input_amount: ::ethers::core::types::U256, - pub output_amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum IDFMMEvents { - AllocateFilter(AllocateFilter), - DeallocateFilter(DeallocateFilter), - InitFilter(InitFilter), - SwapFilter(SwapFilter), - } - impl ::ethers::contract::EthLogDecode for IDFMMEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(IDFMMEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(IDFMMEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = InitFilter::decode_log(log) { - return Ok(IDFMMEvents::InitFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(IDFMMEvents::SwapFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IDFMMEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::InitFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IDFMMEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for IDFMMEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for IDFMMEvents { - fn from(value: InitFilter) -> Self { - Self::InitFilter(value) - } - } - impl ::core::convert::From for IDFMMEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - ///Container type for all input parameters for the `allocate` function with signature `allocate(uint256,bytes)` and selector `0x2ec38188` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allocate", abi = "allocate(uint256,bytes)")] - pub struct AllocateCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `deallocate` function with signature `deallocate(uint256,bytes)` and selector `0x9d942f9a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deallocate", abi = "deallocate(uint256,bytes)")] - pub struct DeallocateCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `getReservesAndLiquidity` function with signature `getReservesAndLiquidity(uint256)` and selector `0xce153bf4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getReservesAndLiquidity", - abi = "getReservesAndLiquidity(uint256)" - )] - pub struct GetReservesAndLiquidityCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `init` function with signature `init((address,address,address,bytes))` and selector `0x1455f1fc` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "init", abi = "init((address,address,address,bytes))")] - pub struct InitCall { - pub params: InitParams, - } - ///Container type for all input parameters for the `lpTokenImplementation` function with signature `lpTokenImplementation()` and selector `0xb462cd25` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "lpTokenImplementation", abi = "lpTokenImplementation()")] - pub struct LpTokenImplementationCall; - ///Container type for all input parameters for the `pools` function with signature `pools(uint256)` and selector `0xac4afa38` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pools", abi = "pools(uint256)")] - pub struct PoolsCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `swap` function with signature `swap(uint256,bytes)` and selector `0xbd0625ab` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "swap", abi = "swap(uint256,bytes)")] - pub struct SwapCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `update` function with signature `update(uint256,bytes)` and selector `0x0216b838` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "update", abi = "update(uint256,bytes)")] - pub struct UpdateCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum IDFMMCalls { - Allocate(AllocateCall), - Deallocate(DeallocateCall), - GetReservesAndLiquidity(GetReservesAndLiquidityCall), - Init(InitCall), - LpTokenImplementation(LpTokenImplementationCall), - Pools(PoolsCall), - Swap(SwapCall), - Update(UpdateCall), - } - impl ::ethers::core::abi::AbiDecode for IDFMMCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Allocate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Deallocate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetReservesAndLiquidity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Init(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::LpTokenImplementation(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Swap(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Update(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IDFMMCalls { - fn encode(self) -> Vec { - match self { - Self::Allocate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deallocate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetReservesAndLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Init(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::LpTokenImplementation(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Swap(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Update(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IDFMMCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Allocate(element) => ::core::fmt::Display::fmt(element, f), - Self::Deallocate(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReservesAndLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Init(element) => ::core::fmt::Display::fmt(element, f), - Self::LpTokenImplementation(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Swap(element) => ::core::fmt::Display::fmt(element, f), - Self::Update(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IDFMMCalls { - fn from(value: AllocateCall) -> Self { - Self::Allocate(value) - } - } - impl ::core::convert::From for IDFMMCalls { - fn from(value: DeallocateCall) -> Self { - Self::Deallocate(value) - } - } - impl ::core::convert::From for IDFMMCalls { - fn from(value: GetReservesAndLiquidityCall) -> Self { - Self::GetReservesAndLiquidity(value) - } - } - impl ::core::convert::From for IDFMMCalls { - fn from(value: InitCall) -> Self { - Self::Init(value) - } - } - impl ::core::convert::From for IDFMMCalls { - fn from(value: LpTokenImplementationCall) -> Self { - Self::LpTokenImplementation(value) - } - } - impl ::core::convert::From for IDFMMCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for IDFMMCalls { - fn from(value: SwapCall) -> Self { - Self::Swap(value) - } - } - impl ::core::convert::From for IDFMMCalls { - fn from(value: UpdateCall) -> Self { - Self::Update(value) - } - } - ///Container type for all return fields from the `allocate` function with signature `allocate(uint256,bytes)` and selector `0x2ec38188` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllocateReturn { - pub delta_x: ::ethers::core::types::U256, - pub delta_y: ::ethers::core::types::U256, - pub delta_l: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `deallocate` function with signature `deallocate(uint256,bytes)` and selector `0x9d942f9a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DeallocateReturn { - pub delta_x: ::ethers::core::types::U256, - pub delta_y: ::ethers::core::types::U256, - pub delta_l: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReservesAndLiquidity` function with signature `getReservesAndLiquidity(uint256)` and selector `0xce153bf4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetReservesAndLiquidityReturn { - pub reserve_x_wad: ::ethers::core::types::U256, - pub reserve_y_wad: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `init` function with signature `init((address,address,address,bytes))` and selector `0x1455f1fc` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InitReturn { - pub pool_id: ::ethers::core::types::U256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `lpTokenImplementation` function with signature `lpTokenImplementation()` and selector `0xb462cd25` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct LpTokenImplementationReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `pools` function with signature `pools(uint256)` and selector `0xac4afa38` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PoolsReturn { - pub strategy: ::ethers::core::types::Address, - pub token_x: ::ethers::core::types::Address, - pub token_y: ::ethers::core::types::Address, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - pub liquidity_token: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `swap` function with signature `swap(uint256,bytes)` and selector `0xbd0625ab` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SwapReturn { - pub input_amount: ::ethers::core::types::U256, - pub output_amount: ::ethers::core::types::U256, - } -} diff --git a/crates/bindings/src/ierc721_token_receiver.rs b/crates/bindings/src/ierc721_token_receiver.rs deleted file mode 100644 index 4f5545fc8..000000000 --- a/crates/bindings/src/ierc721_token_receiver.rs +++ /dev/null @@ -1,177 +0,0 @@ -pub use ierc721_token_receiver::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod ierc721_token_receiver { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("onERC721Received"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("onERC721Received"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 4usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes4"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static IERC721TOKENRECEIVER_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(__abi); - pub struct IERC721TokenReceiver(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC721TokenReceiver { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IERC721TokenReceiver { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IERC721TokenReceiver { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IERC721TokenReceiver { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(IERC721TokenReceiver)) - .field(&self.address()) - .finish() - } - } - impl IERC721TokenReceiver { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IERC721TOKENRECEIVER_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `onERC721Received` (0x150b7a02) function - pub fn on_erc721_received( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - p2: ::ethers::core::types::U256, - p3: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([21, 11, 122, 2], (p0, p1, p2, p3)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IERC721TokenReceiver { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "onERC721Received", - abi = "onERC721Received(address,address,uint256,bytes)" - )] - pub struct OnERC721ReceivedCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::Bytes, - ); - ///Container type for all return fields from the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct OnERC721ReceivedReturn(pub [u8; 4]); -} diff --git a/crates/bindings/src/invariant.rs b/crates/bindings/src/invariant.rs deleted file mode 100644 index 59c93d998..000000000 --- a/crates/bindings/src/invariant.rs +++ /dev/null @@ -1,148 +0,0 @@ -pub use invariant::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod invariant { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("OOB"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("OOB"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static INVARIANT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x1BW`@Q`\x94\x90\x81a\0i\x8290\x81PP\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 \xE1\x8AQ\x1E\xF8\xCEe\xB6\x0E\xDF&S/\tBH0\\bj\xF1\xFF\x9A\x1D\x176\x84T\x10:?\tdsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static INVARIANT_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 \xE1\x8AQ\x1E\xF8\xCEe\xB6\x0E\xDF&S/\tBH0\\bj\xF1\xFF\x9A\x1D\x176\x84T\x10:?\tdsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static INVARIANT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct Invariant(::ethers::contract::Contract); - impl ::core::clone::Clone for Invariant { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Invariant { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Invariant { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Invariant { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Invariant)).field(&self.address()).finish() - } - } - impl Invariant { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - INVARIANT_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - INVARIANT_ABI.clone(), - INVARIANT_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for Invariant { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OOB", abi = "OOB()")] - pub struct OOB; -} diff --git a/crates/bindings/src/lex.rs b/crates/bindings/src/lex.rs deleted file mode 100644 index 90c7c08e7..000000000 --- a/crates/bindings/src/lex.rs +++ /dev/null @@ -1,780 +0,0 @@ -pub use lex::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod lex { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("arbiterTokenX_"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("arbiterTokenY_"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("price_"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("admin"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("admin"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("arbiterTokenX"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("arbiterTokenX"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("arbiterTokenY"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("arbiterTokenY"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("price"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("price"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("setPrice"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("setPrice"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_price"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("swap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("swap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("tokenIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("PriceChange"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("PriceChange"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("price"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("timestamp"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Swap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Swap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("tokenIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("tokenOut"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amountIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amountOut"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static LEX_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@\x90\x80\x82R4a\x01\x06WP\x80Q`\x1Fa\x07\xA18\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xF0W\x80\x84\x92``\x94\x87R\x839\x81\x01\x03\x12a\0\xA1Wa\0O\x81a\x01SV[\x90\x82a\0]` \x83\x01a\x01SV[\x91\x01Q\x91`\x01\x80`\xA0\x1B\x03\x19\x913\x83`\0T\x16\x17`\0U`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x83`\x01T\x16\x17`\x01U\x16\x90`\x02T\x16\x17`\x02U`\x03UQa\x064\x90\x81a\x01m\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x01gWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static LEX_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static LEX_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct Lex(::ethers::contract::Contract); - impl ::core::clone::Clone for Lex { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Lex { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Lex { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Lex { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Lex)).field(&self.address()).finish() - } - } - impl Lex { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - LEX_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - LEX_ABI.clone(), - LEX_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `admin` (0xf851a440) function - pub fn admin( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([248, 81, 164, 64], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `arbiterTokenX` (0x3b204948) function - pub fn arbiter_token_x( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([59, 32, 73, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `arbiterTokenY` (0xd0c472ec) function - pub fn arbiter_token_y( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([208, 196, 114, 236], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `price` (0xa035b1fe) function - pub fn price( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 53, 177, 254], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setPrice` (0x91b7f5ed) function - pub fn set_price( - &self, - price: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([145, 183, 245, 237], price) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `swap` (0xd004f0f7) function - pub fn swap( - &self, - token_in: ::ethers::core::types::Address, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 4, 240, 247], (token_in, amount_in)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `PriceChange` event - pub fn price_change_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - PriceChangeFilter, - > { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LexEvents> { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for Lex { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "PriceChange", abi = "PriceChange(uint256,uint256)")] - pub struct PriceChangeFilter { - pub price: ::ethers::core::types::U256, - pub timestamp: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Swap", abi = "Swap(address,address,uint256,uint256,address)")] - pub struct SwapFilter { - pub token_in: ::ethers::core::types::Address, - pub token_out: ::ethers::core::types::Address, - pub amount_in: ::ethers::core::types::U256, - pub amount_out: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LexEvents { - PriceChangeFilter(PriceChangeFilter), - SwapFilter(SwapFilter), - } - impl ::ethers::contract::EthLogDecode for LexEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = PriceChangeFilter::decode_log(log) { - return Ok(LexEvents::PriceChangeFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(LexEvents::SwapFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for LexEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::PriceChangeFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for LexEvents { - fn from(value: PriceChangeFilter) -> Self { - Self::PriceChangeFilter(value) - } - } - impl ::core::convert::From for LexEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - ///Container type for all input parameters for the `admin` function with signature `admin()` and selector `0xf851a440` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "admin", abi = "admin()")] - pub struct AdminCall; - ///Container type for all input parameters for the `arbiterTokenX` function with signature `arbiterTokenX()` and selector `0x3b204948` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "arbiterTokenX", abi = "arbiterTokenX()")] - pub struct ArbiterTokenXCall; - ///Container type for all input parameters for the `arbiterTokenY` function with signature `arbiterTokenY()` and selector `0xd0c472ec` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "arbiterTokenY", abi = "arbiterTokenY()")] - pub struct ArbiterTokenYCall; - ///Container type for all input parameters for the `price` function with signature `price()` and selector `0xa035b1fe` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "price", abi = "price()")] - pub struct PriceCall; - ///Container type for all input parameters for the `setPrice` function with signature `setPrice(uint256)` and selector `0x91b7f5ed` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setPrice", abi = "setPrice(uint256)")] - pub struct SetPriceCall { - pub price: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `swap` function with signature `swap(address,uint256)` and selector `0xd004f0f7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "swap", abi = "swap(address,uint256)")] - pub struct SwapCall { - pub token_in: ::ethers::core::types::Address, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LexCalls { - Admin(AdminCall), - ArbiterTokenX(ArbiterTokenXCall), - ArbiterTokenY(ArbiterTokenYCall), - Price(PriceCall), - SetPrice(SetPriceCall), - Swap(SwapCall), - } - impl ::ethers::core::abi::AbiDecode for LexCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Admin(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ArbiterTokenX(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ArbiterTokenY(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Price(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SetPrice(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Swap(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LexCalls { - fn encode(self) -> Vec { - match self { - Self::Admin(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ArbiterTokenX(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ArbiterTokenY(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Price(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Swap(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for LexCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Admin(element) => ::core::fmt::Display::fmt(element, f), - Self::ArbiterTokenX(element) => ::core::fmt::Display::fmt(element, f), - Self::ArbiterTokenY(element) => ::core::fmt::Display::fmt(element, f), - Self::Price(element) => ::core::fmt::Display::fmt(element, f), - Self::SetPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::Swap(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for LexCalls { - fn from(value: AdminCall) -> Self { - Self::Admin(value) - } - } - impl ::core::convert::From for LexCalls { - fn from(value: ArbiterTokenXCall) -> Self { - Self::ArbiterTokenX(value) - } - } - impl ::core::convert::From for LexCalls { - fn from(value: ArbiterTokenYCall) -> Self { - Self::ArbiterTokenY(value) - } - } - impl ::core::convert::From for LexCalls { - fn from(value: PriceCall) -> Self { - Self::Price(value) - } - } - impl ::core::convert::From for LexCalls { - fn from(value: SetPriceCall) -> Self { - Self::SetPrice(value) - } - } - impl ::core::convert::From for LexCalls { - fn from(value: SwapCall) -> Self { - Self::Swap(value) - } - } - ///Container type for all return fields from the `admin` function with signature `admin()` and selector `0xf851a440` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AdminReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `arbiterTokenX` function with signature `arbiterTokenX()` and selector `0x3b204948` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ArbiterTokenXReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `arbiterTokenY` function with signature `arbiterTokenY()` and selector `0xd0c472ec` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ArbiterTokenYReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `price` function with signature `price()` and selector `0xa035b1fe` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PriceReturn(pub ::ethers::core::types::U256); -} diff --git a/crates/bindings/src/lib.rs b/crates/bindings/src/lib.rs deleted file mode 100644 index 9e3c45d7d..000000000 --- a/crates/bindings/src/lib.rs +++ /dev/null @@ -1,49 +0,0 @@ -#![allow(clippy::all)] -//! This lib contains abigen! generated bindings for solidity contracts. -//! This is autogenerated code. -//! Do not manually edit these files. -//! These files may be overwritten by the codegen system at any time. -pub mod arb_math; -pub mod arbiter_token; -pub mod atomic_v2; -pub mod bisection_lib; -pub mod coin; -pub mod dfmm; -pub mod dfmm_init; -pub mod dfmm_set_up; -pub mod dynamic_param_lib; -pub mod erc20; -pub mod fixed_point_math_lib; -pub mod g3m; -pub mod g3m_extended_lib; -pub mod g3m_lib; -pub mod g3m_set_up; -pub mod g3m_solver; -pub mod gaussian; -pub mod i_strategy; -pub mod idfmm; -pub mod ierc721_token_receiver; -pub mod invariant; -pub mod lex; -pub mod liquid_exchange; -pub mod log_normal; -pub mod log_normal_extended_lib; -pub mod log_normal_lib; -pub mod log_normal_math; -pub mod log_normal_set_up; -pub mod log_normal_solver; -pub mod lp_token; -pub mod mock_erc20; -pub mod mock_erc721; -pub mod mock_strategy; -pub mod portfolio_tracker; -pub mod safe_transfer_lib; -pub mod scaling_lib; -pub mod set_up; -pub mod shared_types; -pub mod signed_wad_math_lib; -pub mod strategy_lib; -pub mod strategy_like; -pub mod token_like; -pub mod units; -pub mod usdc; diff --git a/crates/bindings/src/liquid_exchange.rs b/crates/bindings/src/liquid_exchange.rs deleted file mode 100644 index 039f3db8e..000000000 --- a/crates/bindings/src/liquid_exchange.rs +++ /dev/null @@ -1,250 +0,0 @@ -pub use liquid_exchange::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod liquid_exchange { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("price"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("price"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("swap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("swap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("token"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static LIQUIDEXCHANGE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct LiquidExchange(::ethers::contract::Contract); - impl ::core::clone::Clone for LiquidExchange { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for LiquidExchange { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for LiquidExchange { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for LiquidExchange { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(LiquidExchange)) - .field(&self.address()) - .finish() - } - } - impl LiquidExchange { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - LIQUIDEXCHANGE_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `price` (0xa035b1fe) function - pub fn price( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 53, 177, 254], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `swap` (0xd004f0f7) function - pub fn swap( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 4, 240, 247], (token, amount)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for LiquidExchange { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `price` function with signature `price()` and selector `0xa035b1fe` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "price", abi = "price()")] - pub struct PriceCall; - ///Container type for all input parameters for the `swap` function with signature `swap(address,uint256)` and selector `0xd004f0f7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "swap", abi = "swap(address,uint256)")] - pub struct SwapCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LiquidExchangeCalls { - Price(PriceCall), - Swap(SwapCall), - } - impl ::ethers::core::abi::AbiDecode for LiquidExchangeCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Price(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Swap(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LiquidExchangeCalls { - fn encode(self) -> Vec { - match self { - Self::Price(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Swap(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for LiquidExchangeCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Price(element) => ::core::fmt::Display::fmt(element, f), - Self::Swap(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for LiquidExchangeCalls { - fn from(value: PriceCall) -> Self { - Self::Price(value) - } - } - impl ::core::convert::From for LiquidExchangeCalls { - fn from(value: SwapCall) -> Self { - Self::Swap(value) - } - } - ///Container type for all return fields from the `price` function with signature `price()` and selector `0xa035b1fe` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PriceReturn(pub ::ethers::core::types::U256); -} diff --git a/crates/bindings/src/log_normal.rs b/crates/bindings/src/log_normal.rs deleted file mode 100644 index 714d05d99..000000000 --- a/crates/bindings/src/log_normal.rs +++ /dev/null @@ -1,1513 +0,0 @@ -pub use log_normal::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod log_normal { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("dfmm_"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("computeSwapConstant"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "computeSwapConstant", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("dfmm"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("dfmm"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPoolParams"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getPoolParams"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("init"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("init"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("invariant"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("internalParams"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("internalParams"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sigma"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct DynamicParam"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("tau"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct DynamicParam"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("strike"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct DynamicParam"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("swapFee"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("controller"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("update"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("update"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("validateAllocateOrDeallocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "validateAllocateOrDeallocate", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("invariant"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("validateSwap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("validateSwap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("invariant"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("liquidityDelta"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("nextRx"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("nextRy"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("nextL"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Infinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Infinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidSender"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidSender"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidUpdateCode"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidUpdateCode"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidUpdateEnd"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidUpdateEnd"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Min"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Min"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("NotDFMM"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NotDFMM"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("OutOfBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("OutOfBounds"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static LOGNORMAL_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\0\xE6W`@Q`\x1Fa\x1FT8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xD0W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0\x80WQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x90\x81\x90\x03a\0{W`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x90\x91\x17\x90U`@Qa\x1E \x90\x81a\x014\x829\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0B\xF7W`\x005`\xE0\x1C\x80b.RK\x14a\0\x8BW\x80c\x1E\xDBq\xE5\x14a\0\x86W\x80ch\xBD>8\x14a\0\x81W\x80cs\xCB-\x03\x14a\0|W\x80c\x8A\x04\xBD\xD5\x14a\0wW\x80c\xAC\xAD)\x89\x14a\0rW\x80c\xAF\xBA\x13\xC4\x14a\0mWc\xDC\x17\x83U\x03a\x0B\xF7Wa\x0B\x8FV[a\x0BfV[a\t\xBFV[a\t\x85V[a\x08\x1FV[a\x04\xCCV[a\x03\xC7V[4a\x01\x07W`@6`\x03\x19\x01\x12a\x01\x02W`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\0\xF5a\0\xD2a\0\xC4` \x936\x90`\x04\x01a\x03aV[\x83\x80\x82Q\x83\x01\x01\x91\x01a\x0CZV[\x90a\0\xEFa\0\xE1`\x045a\x0EyV[\x86\x80\x82Q\x83\x01\x01\x91\x01a\x0C\xC6V[\x92a\x10tV[`@Q\x90\x81R\xF3[a\x01\xA7V[a\x01WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\xA0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[a\x02PV[`\xC0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x92\x91\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x02\x82W`@Q\x91a\x02\xEF`\x1F\x82\x01`\x1F\x19\x16` \x01\x84a\x02\xA3V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x03\x0CW\x82\x81` \x93\x84`\0\x96\x017\x01\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x80`\x1F\x83\x01\x12\x15a\x03\x7FW\x81` a\x03|\x935\x91\x01a\x02\xC5V[\x90V[a\x01\xF7V[\x90`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@R```\x03\x82\x94\x80T\x84R`\x01\x81\x01T` \x85\x01R`\x02\x81\x01T`@\x85\x01R\x01T\x91\x01RV[4a\x04\xB1W` 6`\x03\x19\x01\x12a\x01\x02W`\x045`\0R`\x01` Ra\x01\xC0`@`\0 a\x03\xF4\x81a\x03\x84V[\x90a\x04\x01`\x04\x82\x01a\x03\x84V[\x90a\x04\xA3a\x04\x11`\x08\x83\x01a\x03\x84V[a\x04y`\x0C\x84\x01T\x93`\r`\x01\x80`\xA0\x1B\x03\x91\x01T\x16\x94a\x04S`@Q\x80\x98``\x80\x91\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R\x01Q\x91\x01RV[\x80Q`\x80\x88\x01R` \x81\x01Q`\xA0\x88\x01R`@\x81\x01Q`\xC0\x88\x01R``\x01Q`\xE0\x87\x01RV[\x80Qa\x01\0\x86\x01R` \x81\x01Qa\x01 \x86\x01R`@\x81\x01Qa\x01@\x86\x01R``\x01Qa\x01`\x85\x01RV[a\x01\x80\x83\x01Ra\x01\xA0\x82\x01R\xF3[a\x01\x07V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04\xC7WV[`\0\x80\xFD[4a\x04\xB1W``\x80`\x03\x196\x01\x12a\x01\x02Wa\x04\xE9`\x045a\x04\xB6V[`$5\x90`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\x05\r\x906\x90`\x04\x01a\x03aV[\x90a\x05)a\x05\x1A\x84a\x0EyV[` \x80\x82Q\x83\x01\x01\x91\x01a\x0C\xC6V[`\0T\x90\x92\x90a\x05O\x90a\x05C\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07\rW`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x95\x90\x95R\x82\x90\x85\x90`$\x90\x82\x90Z\xFA\x80\x15a\x07\x08W`\0\x91\x82\x95\x83\x92a\x06\xCDW[P\x80` \x80a\x05\x9C\x93Q\x83\x01\x01\x91\x01a\x0CZV[\x93\x91\x94\x90\x96\x82\x86\x11`\0\x14a\x06@WP\x91a\x05\xDD\x82a\x05\xD8\x83a\x05\xD3a\x05\xEE\x97a\x05\xC9a\x05\xE5\x98\x8Ca\r\x8AV[\x90\x8C\x01Q\x90a\x15\x9BV[a\x15\x9BV[a\x15\xC7V[P[\x83a\r\xE5V[\x93\x82\x86\x85a\x10tV[\x93\x84`\x13\x19\x12\x92\x83a\x065W[a\x061\x93\x94`@Q\x96\x87\x96\x87\x92`\xA0\x94\x91\x97\x96\x95\x92`\xC0\x85\x01\x98\x15\x15\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x01RV[\x03\x90\xF3[`\x14\x86\x12\x93Pa\x05\xFBV[\x90\x92\x90\x91P\x81\x87\x11\x15a\x06oWa\x06i\x82a\x05\xD8\x83a\x05\xD3a\x05\xEE\x97a\x05\xC9a\x05\xE5\x98\x8Ea\r\x8AV[Pa\x05\xDFV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7Finvalid swap: inputs x and y hav`D\x82\x01Roe the same sign!`\x80\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x95Pa\x05\x9C\x92Pa\x06\xF5\x91P\x83=\x85\x11a\x07\x01W[a\x06\xED\x81\x83a\x02\xA3V[\x81\x01\x90a\x0CZV[\x95\x91\x92\x90\x95\x91\x90a\x05\x88V[P=a\x06\xE3V[a\rhV[a\r\x15V[\x90```\x03\x19\x83\x01\x12a\x01\x02W`\x045a\x07+\x81a\x04\xB6V[\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\0\xFDW\x80`#\x83\x01\x12\x15a\x03\x7FW\x81`\x04\x015\x93\x84\x11a\x07\xC6W`$\x84\x83\x01\x01\x11a\x07mW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[4a\x04\xB1Wa\x08-6a\x07\x12V[`\0T\x92\x93P\x91`\x01`\x01`\xA0\x1B\x03\x163\x03a\tsWa\t1a\t)a\x05\x1Aa\t$\x95a\x08k`\x80\x95a\x08\xEE\x97a\x08ba\x0ENV[P\x81\x01\x90a\x11sV[` \x81\x9B\x94\x9A\x93\x99\x92\x9B\x01Qa\x08\x8B\x86`\0R`\x01` R`@`\0 \x90V[U`@\x81\x01Q`\x04a\x08\xA7\x87`\0R`\x01` R`@`\0 \x90V[\x01U\x80Q`\x08a\x08\xC1\x87`\0R`\x01` R`@`\0 \x90V[\x01U``\x81\x01Q`\x0Ca\x08\xDE\x87`\0R`\x01` R`@`\0 \x90V[\x01U\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\ra\t\x04\x84`\0R`\x01` R`@`\0 \x90V[\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90UV[a\x0EyV[\x84\x83\x85a\x10tV[\x92\x83`\x13\x19\x12\x91\x82a\thW[`@\x80Q\x93\x15\x15\x84R` \x84\x01\x95\x90\x95R\x93\x82\x01\x92\x90\x92R``\x81\x01\x92\x90\x92R`\x80\x82\x01R`\xA0\x90\xF3[`\x14\x85\x12\x92Pa\t>V[`@QchS\xCB\xA7`\xE0\x1B\x81R`\x04\x90\xFD[4a\x04\xB1W``a\t\x956a\x07\x12V[\x81\x80\x94P\x94\x92\x94\x01\x03\x12a\x01\x02W\x805\x90a\t1a\t)a\x05\x1A`@` \x85\x015\x94\x015\x95a\x0EyV[4a\x04\xB1Wa\t\xCD6a\x07\x12V[`\0T\x90\x93\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x163\x03a\tsWa\n\x0Ea\x05C`\ra\n\0\x87`\0R`\x01` R`@`\0 \x90V[\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x91\x16\x03a\x0BTWa\n!\x83\x82\x01\x82a\x0E\x19V[a\n*\x81a\x0E.V[`\x01\x81\x03a\ncWPa\nMa\nHa\n^\x92`\x0C\x94\x956\x91a\x02\xC5V[a\x12\xAFV[\x92`\0R`\x01` R`@`\0 \x90V[\x01U[\0[a\nl\x81a\x0E.V[`\x03\x81\x03a\n\xA8WP\x90a\n\x90a\n\x8Ba\n\xA3\x93a\na\x956\x91a\x02\xC5V[a\x12\x05V[\x92\x90\x91`\0R`\x01` R`@`\0 \x90V[a\x12-V[a\n\xB1\x81a\x0E.V[`\x04\x81\x03a\n\xEBWP\x90`\x04a\n\xD2a\n\x8Ba\n\xE5\x94a\na\x966\x91a\x02\xC5V[\x93\x90\x92`\0R`\x01` R`@`\0 \x90V[\x01a\x12-V[a\n\xF4\x81a\x0E.V[`\x02\x81\x03a\x0B\x15WP\x90`\x08a\n\xD2a\n\x8Ba\n\xE5\x94a\na\x966\x91a\x02\xC5V[\x80a\x0B!`\x05\x92a\x0E.V[\x03a\x0BBWa\t\x04a\nMa\x0B=`\r\x93a\na\x966\x91a\x02\xC5V[a\x11\xDDV[`@Qc#]+=`\xE0\x1B\x81R`\x04\x90\xFD[`@Qcn\xDA\xEF/`\xE1\x1B\x81R`\x04\x90\xFD[4a\x04\xB1W`\x006`\x03\x19\x01\x12a\x01\x02W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x04\xB1W` \x80`\x03\x196\x01\x12a\x01\x02Wa\x0B\xAC`\x045a\x0EyV[\x90`@\x80Q\x91` \x83R\x83Q\x91\x82` \x85\x01R`\0[\x83\x81\x10a\x0B\xE4W\x84`@\x81\x86`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x81\x01\x03\x01\x90\xF3[\x85\x81\x01\x83\x01Q\x85\x82\x01\x83\x01R\x82\x01a\x0B\xC2V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81``\x91\x03\x12a\x01\x02W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81`\xA0\x91\x03\x12a\x01\x02W`\x80`@Q\x91a\x0C\xE0\x83a\x02fV[\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R``\x81\x01Q``\x84\x01R\x01Qa\r\r\x81a\x04\xB6V[`\x80\x82\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[`@Q=`\0\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x91\x90\x82\x03\x91\x82\x11a\r\x97WV[a\rtV[\x91\x90\x82\x01\x80\x92\x11a\r\x97WV[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\r\x97WV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\r\x97WV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\r\x97WV[`\x01`\xFF\x1B\x81\x14a\r\x97W`\0\x03\x90V[`\x06\x11\x15a\x04\xC7WV[\x90\x81` \x91\x03\x12a\x01\x02W5a\x03|\x81a\x0E\x0FV[`\x06\x11\x15a\x0E8WV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@Q\x90a\x0E[\x82a\x02fV[`\0`\x80\x83\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x01RV[a\x0E\x81a\x0ENV[\x81`\0R`\x01` Ra\x0E\x9Fa\x0E\x9A`@`\0 a\x03\x84V[a\x12\xE4V[\x91` \x82\x01\x92\x83R\x80`\0R`\x01` Ra\x0E\xC3a\x0E\x9A`\x08`@`\0 \x01a\x03\x84V[\x82R`\x0Ca\x0F\x04a\x0E\xECa\x0E\x9A`\x04a\x0E\xE6\x86`\0R`\x01` R`@`\0 \x90V[\x01a\x03\x84V[\x92`@\x85\x01\x93\x84R`\0R`\x01` R`@`\0 \x90V[\x01T\x90``\x83\x01\x91\x82R`@Q\x93\x83Q` \x86\x01RQ`@\x85\x01RQ``\x84\x01RQ`\x80\x83\x01R`\x80`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16`\xA0\x82\x01R`\xA0\x81Ra\x03|\x81a\x02\x87V[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\r\x97WV[\x90\x92\x82\x82\x10\x15a\x11.Wa\x03|\x93a\x10\xF1\x92\x84g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82a\x10\x9C\x83\x83a\x15\xF7V[\x10a\x11\x1BWP`\x01`\x01`\xFF\x1B\x03\x95\x90P[\x83Q\x91a\x10\xC4a\x10\xBE\x83\x85a\x16\x19V[\x85a\x15\xF7V[\x10a\x10\xF6WP`\x01`\x01`\xFF\x1B\x03\x92a\x10\xEB\x92P\x90P[`@` \x82\x01Q\x91\x01Q\x90a\x15rV[\x92a\x10XV[a\x10XV[a\x10\xEB\x92a\x11\na\x11\x10\x92a\x11\x15\x94a\x16\x19V[\x90a\x15\xF7V[a\x13\x9FV[\x91a\x10\xDBV[a\x11(\x91a\x11\x10\x91a\x15\xF7V[\x94a\x10\xAEV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1A`$\x82\x01R\x7FtradingFunction: invalid x\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x80\x91\x03a\x01\0\x81\x12a\x01\x02W\x815\x92` \x83\x015\x92`\xA0`@\x82\x015\x93`_\x19\x01\x12a\x11\xD8W`\xE0`@Q\x91a\x11\xA8\x83a\x02fV[``\x81\x015\x83R`\x80\x81\x015` \x84\x01R`\xA0\x81\x015`@\x84\x01R`\xC0\x81\x015``\x84\x01R\x015a\r\r\x81a\x04\xB6V[a\x0CuV[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x11\xFA` `@\x93\x01Qa\x0E\x0FV[\x01Qa\x05C\x81a\x04\xB6V[``\x81\x80Q\x81\x01\x03\x12a\x01\x02Wa\x12\x1F` \x82\x01Qa\x0E\x0FV[```@\x82\x01Q\x91\x01Q\x90\x91V[\x91\x90B\x82\x11\x15a\x12\x9DWa\x12Ca\x0E\x9A\x84a\x03\x84V[\x90\x81\x84UB`\x03\x85\x01UB\x83\x03\x91\x83\x83\x11a\r\x97Wa\x12a\x91a\r\xE5V[B\x83\x14a\x12\x87W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\r\x97W`\x02\x92`\x01\x85\x01U\x05\x91\x01UV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`@Qcf\xF1\x02\xED`\xE1\x1B\x81R`\x04\x90\xFD[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x12\xCC` `@\x93\x01Qa\x0E\x0FV[\x01Q\x90V[\x81\x81\x02\x92\x91\x81\x15\x91\x84\x04\x14\x17\x15a\r\x97WV[``\x81\x01Q` \x82\x01Q\x80\x82\x14a\x13_W\x80B\x11`\0\x14a\x13WW\x90[\x81\x03\x90\x81\x11a\r\x97W`@\x82\x01\x90\x81Q`\0\x81\x13`\0\x14a\x134WPa\x13.\x90a\x03|\x93Q\x92Q\x90a\x12\xD1V[\x90a\r\x9CV[\x92a\x13K\x92Pa\x13E\x90Q\x93a\r\xFEV[\x90a\x12\xD1V[\x81\x03\x90\x81\x11a\r\x97W\x90V[PB\x90a\x13\x01V[PPQ\x90V[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\r\x97WV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\r\x97W`\0\x19\x83\x05\x03a\r\x97WV[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a\x15lWg\r\xE0\xB6\xB3\xA7d\0\0\x80\x82\x12\x15a\x15\x16W\x81\x15a\x157W`\x01\x82`\x01\x1B\x91`\x02\x93\x83\x05`\x02\x03a\r\x97W`\0\x83\x12\x80\x15a\x15[W[a\x15IW\x82\x15a\x15\x16Wg\x1B\xC1mgN\xC8\0\0\x83\x14a\x157W\x82\x12\x91\x82\x15a\x15(W\x92[a\x14\x10\x84a\x1B\xC7V[\x80\x15a\x15\x16Wa\x14\x82a\x14Aa\x14\x19\x81\x13\x15a\x15lWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x1BlWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x04\xC7Wn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\xC7W\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x1DV\x81\x15\x15a\x17#V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[`\x01`\xFF\x1B\x81\x14a\x1D\xD8W`\0\x81\x12\x15a\x03|W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD\xFE\xA2dipfsX\"\x12 \xEC6\x0C\xDB\x88T\xB6\x16\x94\x9BZ\xE2\x06 i\xDF$I\xE5\xEF\xA1\xB1\xA1\xF0\x1F\xFAP\xF0\x94\x9B\x80\x85dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static LOGNORMAL_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\x0B\xF7W`\x005`\xE0\x1C\x80b.RK\x14a\0\x8BW\x80c\x1E\xDBq\xE5\x14a\0\x86W\x80ch\xBD>8\x14a\0\x81W\x80cs\xCB-\x03\x14a\0|W\x80c\x8A\x04\xBD\xD5\x14a\0wW\x80c\xAC\xAD)\x89\x14a\0rW\x80c\xAF\xBA\x13\xC4\x14a\0mWc\xDC\x17\x83U\x03a\x0B\xF7Wa\x0B\x8FV[a\x0BfV[a\t\xBFV[a\t\x85V[a\x08\x1FV[a\x04\xCCV[a\x03\xC7V[4a\x01\x07W`@6`\x03\x19\x01\x12a\x01\x02W`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\0\xF5a\0\xD2a\0\xC4` \x936\x90`\x04\x01a\x03aV[\x83\x80\x82Q\x83\x01\x01\x91\x01a\x0CZV[\x90a\0\xEFa\0\xE1`\x045a\x0EyV[\x86\x80\x82Q\x83\x01\x01\x91\x01a\x0C\xC6V[\x92a\x10tV[`@Q\x90\x81R\xF3[a\x01\xA7V[a\x01WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\xA0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[a\x02PV[`\xC0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x92\x91\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x02\x82W`@Q\x91a\x02\xEF`\x1F\x82\x01`\x1F\x19\x16` \x01\x84a\x02\xA3V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x03\x0CW\x82\x81` \x93\x84`\0\x96\x017\x01\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x80`\x1F\x83\x01\x12\x15a\x03\x7FW\x81` a\x03|\x935\x91\x01a\x02\xC5V[\x90V[a\x01\xF7V[\x90`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@R```\x03\x82\x94\x80T\x84R`\x01\x81\x01T` \x85\x01R`\x02\x81\x01T`@\x85\x01R\x01T\x91\x01RV[4a\x04\xB1W` 6`\x03\x19\x01\x12a\x01\x02W`\x045`\0R`\x01` Ra\x01\xC0`@`\0 a\x03\xF4\x81a\x03\x84V[\x90a\x04\x01`\x04\x82\x01a\x03\x84V[\x90a\x04\xA3a\x04\x11`\x08\x83\x01a\x03\x84V[a\x04y`\x0C\x84\x01T\x93`\r`\x01\x80`\xA0\x1B\x03\x91\x01T\x16\x94a\x04S`@Q\x80\x98``\x80\x91\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R\x01Q\x91\x01RV[\x80Q`\x80\x88\x01R` \x81\x01Q`\xA0\x88\x01R`@\x81\x01Q`\xC0\x88\x01R``\x01Q`\xE0\x87\x01RV[\x80Qa\x01\0\x86\x01R` \x81\x01Qa\x01 \x86\x01R`@\x81\x01Qa\x01@\x86\x01R``\x01Qa\x01`\x85\x01RV[a\x01\x80\x83\x01Ra\x01\xA0\x82\x01R\xF3[a\x01\x07V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04\xC7WV[`\0\x80\xFD[4a\x04\xB1W``\x80`\x03\x196\x01\x12a\x01\x02Wa\x04\xE9`\x045a\x04\xB6V[`$5\x90`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\x05\r\x906\x90`\x04\x01a\x03aV[\x90a\x05)a\x05\x1A\x84a\x0EyV[` \x80\x82Q\x83\x01\x01\x91\x01a\x0C\xC6V[`\0T\x90\x92\x90a\x05O\x90a\x05C\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07\rW`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x95\x90\x95R\x82\x90\x85\x90`$\x90\x82\x90Z\xFA\x80\x15a\x07\x08W`\0\x91\x82\x95\x83\x92a\x06\xCDW[P\x80` \x80a\x05\x9C\x93Q\x83\x01\x01\x91\x01a\x0CZV[\x93\x91\x94\x90\x96\x82\x86\x11`\0\x14a\x06@WP\x91a\x05\xDD\x82a\x05\xD8\x83a\x05\xD3a\x05\xEE\x97a\x05\xC9a\x05\xE5\x98\x8Ca\r\x8AV[\x90\x8C\x01Q\x90a\x15\x9BV[a\x15\x9BV[a\x15\xC7V[P[\x83a\r\xE5V[\x93\x82\x86\x85a\x10tV[\x93\x84`\x13\x19\x12\x92\x83a\x065W[a\x061\x93\x94`@Q\x96\x87\x96\x87\x92`\xA0\x94\x91\x97\x96\x95\x92`\xC0\x85\x01\x98\x15\x15\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x01RV[\x03\x90\xF3[`\x14\x86\x12\x93Pa\x05\xFBV[\x90\x92\x90\x91P\x81\x87\x11\x15a\x06oWa\x06i\x82a\x05\xD8\x83a\x05\xD3a\x05\xEE\x97a\x05\xC9a\x05\xE5\x98\x8Ea\r\x8AV[Pa\x05\xDFV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7Finvalid swap: inputs x and y hav`D\x82\x01Roe the same sign!`\x80\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x95Pa\x05\x9C\x92Pa\x06\xF5\x91P\x83=\x85\x11a\x07\x01W[a\x06\xED\x81\x83a\x02\xA3V[\x81\x01\x90a\x0CZV[\x95\x91\x92\x90\x95\x91\x90a\x05\x88V[P=a\x06\xE3V[a\rhV[a\r\x15V[\x90```\x03\x19\x83\x01\x12a\x01\x02W`\x045a\x07+\x81a\x04\xB6V[\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\0\xFDW\x80`#\x83\x01\x12\x15a\x03\x7FW\x81`\x04\x015\x93\x84\x11a\x07\xC6W`$\x84\x83\x01\x01\x11a\x07mW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[4a\x04\xB1Wa\x08-6a\x07\x12V[`\0T\x92\x93P\x91`\x01`\x01`\xA0\x1B\x03\x163\x03a\tsWa\t1a\t)a\x05\x1Aa\t$\x95a\x08k`\x80\x95a\x08\xEE\x97a\x08ba\x0ENV[P\x81\x01\x90a\x11sV[` \x81\x9B\x94\x9A\x93\x99\x92\x9B\x01Qa\x08\x8B\x86`\0R`\x01` R`@`\0 \x90V[U`@\x81\x01Q`\x04a\x08\xA7\x87`\0R`\x01` R`@`\0 \x90V[\x01U\x80Q`\x08a\x08\xC1\x87`\0R`\x01` R`@`\0 \x90V[\x01U``\x81\x01Q`\x0Ca\x08\xDE\x87`\0R`\x01` R`@`\0 \x90V[\x01U\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\ra\t\x04\x84`\0R`\x01` R`@`\0 \x90V[\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90UV[a\x0EyV[\x84\x83\x85a\x10tV[\x92\x83`\x13\x19\x12\x91\x82a\thW[`@\x80Q\x93\x15\x15\x84R` \x84\x01\x95\x90\x95R\x93\x82\x01\x92\x90\x92R``\x81\x01\x92\x90\x92R`\x80\x82\x01R`\xA0\x90\xF3[`\x14\x85\x12\x92Pa\t>V[`@QchS\xCB\xA7`\xE0\x1B\x81R`\x04\x90\xFD[4a\x04\xB1W``a\t\x956a\x07\x12V[\x81\x80\x94P\x94\x92\x94\x01\x03\x12a\x01\x02W\x805\x90a\t1a\t)a\x05\x1A`@` \x85\x015\x94\x015\x95a\x0EyV[4a\x04\xB1Wa\t\xCD6a\x07\x12V[`\0T\x90\x93\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x163\x03a\tsWa\n\x0Ea\x05C`\ra\n\0\x87`\0R`\x01` R`@`\0 \x90V[\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x91\x16\x03a\x0BTWa\n!\x83\x82\x01\x82a\x0E\x19V[a\n*\x81a\x0E.V[`\x01\x81\x03a\ncWPa\nMa\nHa\n^\x92`\x0C\x94\x956\x91a\x02\xC5V[a\x12\xAFV[\x92`\0R`\x01` R`@`\0 \x90V[\x01U[\0[a\nl\x81a\x0E.V[`\x03\x81\x03a\n\xA8WP\x90a\n\x90a\n\x8Ba\n\xA3\x93a\na\x956\x91a\x02\xC5V[a\x12\x05V[\x92\x90\x91`\0R`\x01` R`@`\0 \x90V[a\x12-V[a\n\xB1\x81a\x0E.V[`\x04\x81\x03a\n\xEBWP\x90`\x04a\n\xD2a\n\x8Ba\n\xE5\x94a\na\x966\x91a\x02\xC5V[\x93\x90\x92`\0R`\x01` R`@`\0 \x90V[\x01a\x12-V[a\n\xF4\x81a\x0E.V[`\x02\x81\x03a\x0B\x15WP\x90`\x08a\n\xD2a\n\x8Ba\n\xE5\x94a\na\x966\x91a\x02\xC5V[\x80a\x0B!`\x05\x92a\x0E.V[\x03a\x0BBWa\t\x04a\nMa\x0B=`\r\x93a\na\x966\x91a\x02\xC5V[a\x11\xDDV[`@Qc#]+=`\xE0\x1B\x81R`\x04\x90\xFD[`@Qcn\xDA\xEF/`\xE1\x1B\x81R`\x04\x90\xFD[4a\x04\xB1W`\x006`\x03\x19\x01\x12a\x01\x02W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x04\xB1W` \x80`\x03\x196\x01\x12a\x01\x02Wa\x0B\xAC`\x045a\x0EyV[\x90`@\x80Q\x91` \x83R\x83Q\x91\x82` \x85\x01R`\0[\x83\x81\x10a\x0B\xE4W\x84`@\x81\x86`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x81\x01\x03\x01\x90\xF3[\x85\x81\x01\x83\x01Q\x85\x82\x01\x83\x01R\x82\x01a\x0B\xC2V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81``\x91\x03\x12a\x01\x02W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81`\xA0\x91\x03\x12a\x01\x02W`\x80`@Q\x91a\x0C\xE0\x83a\x02fV[\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R``\x81\x01Q``\x84\x01R\x01Qa\r\r\x81a\x04\xB6V[`\x80\x82\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[`@Q=`\0\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x91\x90\x82\x03\x91\x82\x11a\r\x97WV[a\rtV[\x91\x90\x82\x01\x80\x92\x11a\r\x97WV[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\r\x97WV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\r\x97WV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\r\x97WV[`\x01`\xFF\x1B\x81\x14a\r\x97W`\0\x03\x90V[`\x06\x11\x15a\x04\xC7WV[\x90\x81` \x91\x03\x12a\x01\x02W5a\x03|\x81a\x0E\x0FV[`\x06\x11\x15a\x0E8WV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@Q\x90a\x0E[\x82a\x02fV[`\0`\x80\x83\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x01RV[a\x0E\x81a\x0ENV[\x81`\0R`\x01` Ra\x0E\x9Fa\x0E\x9A`@`\0 a\x03\x84V[a\x12\xE4V[\x91` \x82\x01\x92\x83R\x80`\0R`\x01` Ra\x0E\xC3a\x0E\x9A`\x08`@`\0 \x01a\x03\x84V[\x82R`\x0Ca\x0F\x04a\x0E\xECa\x0E\x9A`\x04a\x0E\xE6\x86`\0R`\x01` R`@`\0 \x90V[\x01a\x03\x84V[\x92`@\x85\x01\x93\x84R`\0R`\x01` R`@`\0 \x90V[\x01T\x90``\x83\x01\x91\x82R`@Q\x93\x83Q` \x86\x01RQ`@\x85\x01RQ``\x84\x01RQ`\x80\x83\x01R`\x80`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16`\xA0\x82\x01R`\xA0\x81Ra\x03|\x81a\x02\x87V[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\r\x97WV[\x90\x92\x82\x82\x10\x15a\x11.Wa\x03|\x93a\x10\xF1\x92\x84g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82a\x10\x9C\x83\x83a\x15\xF7V[\x10a\x11\x1BWP`\x01`\x01`\xFF\x1B\x03\x95\x90P[\x83Q\x91a\x10\xC4a\x10\xBE\x83\x85a\x16\x19V[\x85a\x15\xF7V[\x10a\x10\xF6WP`\x01`\x01`\xFF\x1B\x03\x92a\x10\xEB\x92P\x90P[`@` \x82\x01Q\x91\x01Q\x90a\x15rV[\x92a\x10XV[a\x10XV[a\x10\xEB\x92a\x11\na\x11\x10\x92a\x11\x15\x94a\x16\x19V[\x90a\x15\xF7V[a\x13\x9FV[\x91a\x10\xDBV[a\x11(\x91a\x11\x10\x91a\x15\xF7V[\x94a\x10\xAEV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1A`$\x82\x01R\x7FtradingFunction: invalid x\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x80\x91\x03a\x01\0\x81\x12a\x01\x02W\x815\x92` \x83\x015\x92`\xA0`@\x82\x015\x93`_\x19\x01\x12a\x11\xD8W`\xE0`@Q\x91a\x11\xA8\x83a\x02fV[``\x81\x015\x83R`\x80\x81\x015` \x84\x01R`\xA0\x81\x015`@\x84\x01R`\xC0\x81\x015``\x84\x01R\x015a\r\r\x81a\x04\xB6V[a\x0CuV[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x11\xFA` `@\x93\x01Qa\x0E\x0FV[\x01Qa\x05C\x81a\x04\xB6V[``\x81\x80Q\x81\x01\x03\x12a\x01\x02Wa\x12\x1F` \x82\x01Qa\x0E\x0FV[```@\x82\x01Q\x91\x01Q\x90\x91V[\x91\x90B\x82\x11\x15a\x12\x9DWa\x12Ca\x0E\x9A\x84a\x03\x84V[\x90\x81\x84UB`\x03\x85\x01UB\x83\x03\x91\x83\x83\x11a\r\x97Wa\x12a\x91a\r\xE5V[B\x83\x14a\x12\x87W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\r\x97W`\x02\x92`\x01\x85\x01U\x05\x91\x01UV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`@Qcf\xF1\x02\xED`\xE1\x1B\x81R`\x04\x90\xFD[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x12\xCC` `@\x93\x01Qa\x0E\x0FV[\x01Q\x90V[\x81\x81\x02\x92\x91\x81\x15\x91\x84\x04\x14\x17\x15a\r\x97WV[``\x81\x01Q` \x82\x01Q\x80\x82\x14a\x13_W\x80B\x11`\0\x14a\x13WW\x90[\x81\x03\x90\x81\x11a\r\x97W`@\x82\x01\x90\x81Q`\0\x81\x13`\0\x14a\x134WPa\x13.\x90a\x03|\x93Q\x92Q\x90a\x12\xD1V[\x90a\r\x9CV[\x92a\x13K\x92Pa\x13E\x90Q\x93a\r\xFEV[\x90a\x12\xD1V[\x81\x03\x90\x81\x11a\r\x97W\x90V[PB\x90a\x13\x01V[PPQ\x90V[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\r\x97WV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\r\x97W`\0\x19\x83\x05\x03a\r\x97WV[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a\x15lWg\r\xE0\xB6\xB3\xA7d\0\0\x80\x82\x12\x15a\x15\x16W\x81\x15a\x157W`\x01\x82`\x01\x1B\x91`\x02\x93\x83\x05`\x02\x03a\r\x97W`\0\x83\x12\x80\x15a\x15[W[a\x15IW\x82\x15a\x15\x16Wg\x1B\xC1mgN\xC8\0\0\x83\x14a\x157W\x82\x12\x91\x82\x15a\x15(W\x92[a\x14\x10\x84a\x1B\xC7V[\x80\x15a\x15\x16Wa\x14\x82a\x14Aa\x14\x19\x81\x13\x15a\x15lWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x1BlWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x04\xC7Wn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\xC7W\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x1DV\x81\x15\x15a\x17#V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[`\x01`\xFF\x1B\x81\x14a\x1D\xD8W`\0\x81\x12\x15a\x03|W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD\xFE\xA2dipfsX\"\x12 \xEC6\x0C\xDB\x88T\xB6\x16\x94\x9BZ\xE2\x06 i\xDF$I\xE5\xEF\xA1\xB1\xA1\xF0\x1F\xFAP\xF0\x94\x9B\x80\x85dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static LOGNORMAL_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct LogNormal(::ethers::contract::Contract); - impl ::core::clone::Clone for LogNormal { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for LogNormal { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for LogNormal { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for LogNormal { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(LogNormal)).field(&self.address()).finish() - } - } - impl LogNormal { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - LOGNORMAL_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - LOGNORMAL_ABI.clone(), - LOGNORMAL_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `computeSwapConstant` (0x002e524b) function - pub fn compute_swap_constant( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([0, 46, 82, 75], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `dfmm` (0xafba13c4) function - pub fn dfmm( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([175, 186, 19, 196], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolParams` (0xdc178355) function - pub fn get_pool_params( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([220, 23, 131, 85], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `init` (0x73cb2d03) function - pub fn init( - &self, - p0: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([115, 203, 45, 3], (p0, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `internalParams` (0x1edb71e5) function - pub fn internal_params( - &self, - p0: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - DynamicParam, - DynamicParam, - DynamicParam, - ::ethers::core::types::U256, - ::ethers::core::types::Address, - ), - > { - self.0 - .method_hash([30, 219, 113, 229], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `update` (0xacad2989) function - pub fn update( - &self, - sender: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([172, 173, 41, 137], (sender, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateAllocateOrDeallocate` (0x8a04bdd5) function - pub fn validate_allocate_or_deallocate( - &self, - p0: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([138, 4, 189, 213], (p0, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateSwap` (0x68bd3e38) function - pub fn validate_swap( - &self, - p0: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([104, 189, 62, 56], (p0, pool_id, data)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for LogNormal { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `InvalidSender` with signature `InvalidSender()` and selector `0xddb5de5e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSender", abi = "InvalidSender()")] - pub struct InvalidSender; - ///Custom Error type `InvalidUpdateCode` with signature `InvalidUpdateCode()` and selector `0x235d2b3d` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidUpdateCode", abi = "InvalidUpdateCode()")] - pub struct InvalidUpdateCode; - ///Custom Error type `InvalidUpdateEnd` with signature `InvalidUpdateEnd()` and selector `0xcde205da` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidUpdateEnd", abi = "InvalidUpdateEnd()")] - pub struct InvalidUpdateEnd; - ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Min", abi = "Min()")] - pub struct Min; - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `NotDFMM` with signature `NotDFMM()` and selector `0x6853cba7` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NotDFMM", abi = "NotDFMM()")] - pub struct NotDFMM; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LogNormalErrors { - Infinity(Infinity), - InvalidSender(InvalidSender), - InvalidUpdateCode(InvalidUpdateCode), - InvalidUpdateEnd(InvalidUpdateEnd), - Min(Min), - NegativeInfinity(NegativeInfinity), - NotDFMM(NotDFMM), - OutOfBounds(OutOfBounds), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for LogNormalErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidSender(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidUpdateCode(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidUpdateEnd(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Min(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NotDFMM(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::OutOfBounds(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LogNormalErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::Infinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidSender(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidUpdateCode(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidUpdateEnd(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeInfinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NotDFMM(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OutOfBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for LogNormalErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for LogNormalErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidSender(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidUpdateCode(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidUpdateEnd(element) => ::core::fmt::Display::fmt(element, f), - Self::Min(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::NotDFMM(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for LogNormalErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for LogNormalErrors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for LogNormalErrors { - fn from(value: InvalidSender) -> Self { - Self::InvalidSender(value) - } - } - impl ::core::convert::From for LogNormalErrors { - fn from(value: InvalidUpdateCode) -> Self { - Self::InvalidUpdateCode(value) - } - } - impl ::core::convert::From for LogNormalErrors { - fn from(value: InvalidUpdateEnd) -> Self { - Self::InvalidUpdateEnd(value) - } - } - impl ::core::convert::From for LogNormalErrors { - fn from(value: Min) -> Self { - Self::Min(value) - } - } - impl ::core::convert::From for LogNormalErrors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for LogNormalErrors { - fn from(value: NotDFMM) -> Self { - Self::NotDFMM(value) - } - } - impl ::core::convert::From for LogNormalErrors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } - ///Container type for all input parameters for the `computeSwapConstant` function with signature `computeSwapConstant(uint256,bytes)` and selector `0x002e524b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "computeSwapConstant", abi = "computeSwapConstant(uint256,bytes)")] - pub struct ComputeSwapConstantCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `dfmm` function with signature `dfmm()` and selector `0xafba13c4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "dfmm", abi = "dfmm()")] - pub struct DfmmCall; - ///Container type for all input parameters for the `getPoolParams` function with signature `getPoolParams(uint256)` and selector `0xdc178355` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolParams", abi = "getPoolParams(uint256)")] - pub struct GetPoolParamsCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `init` function with signature `init(address,uint256,bytes)` and selector `0x73cb2d03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "init", abi = "init(address,uint256,bytes)")] - pub struct InitCall { - pub p0: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `internalParams` function with signature `internalParams(uint256)` and selector `0x1edb71e5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "internalParams", abi = "internalParams(uint256)")] - pub struct InternalParamsCall(pub ::ethers::core::types::U256); - ///Container type for all input parameters for the `update` function with signature `update(address,uint256,bytes)` and selector `0xacad2989` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "update", abi = "update(address,uint256,bytes)")] - pub struct UpdateCall { - pub sender: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `validateAllocateOrDeallocate` function with signature `validateAllocateOrDeallocate(address,uint256,bytes)` and selector `0x8a04bdd5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "validateAllocateOrDeallocate", - abi = "validateAllocateOrDeallocate(address,uint256,bytes)" - )] - pub struct ValidateAllocateOrDeallocateCall { - pub p0: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `validateSwap` function with signature `validateSwap(address,uint256,bytes)` and selector `0x68bd3e38` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "validateSwap", abi = "validateSwap(address,uint256,bytes)")] - pub struct ValidateSwapCall { - pub p0: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LogNormalCalls { - ComputeSwapConstant(ComputeSwapConstantCall), - Dfmm(DfmmCall), - GetPoolParams(GetPoolParamsCall), - Init(InitCall), - InternalParams(InternalParamsCall), - Update(UpdateCall), - ValidateAllocateOrDeallocate(ValidateAllocateOrDeallocateCall), - ValidateSwap(ValidateSwapCall), - } - impl ::ethers::core::abi::AbiDecode for LogNormalCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ComputeSwapConstant(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Dfmm(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPoolParams(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Init(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InternalParams(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Update(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ValidateAllocateOrDeallocate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ValidateSwap(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LogNormalCalls { - fn encode(self) -> Vec { - match self { - Self::ComputeSwapConstant(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Dfmm(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolParams(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Init(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InternalParams(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Update(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ValidateAllocateOrDeallocate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ValidateSwap(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for LogNormalCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ComputeSwapConstant(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Dfmm(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolParams(element) => ::core::fmt::Display::fmt(element, f), - Self::Init(element) => ::core::fmt::Display::fmt(element, f), - Self::InternalParams(element) => ::core::fmt::Display::fmt(element, f), - Self::Update(element) => ::core::fmt::Display::fmt(element, f), - Self::ValidateAllocateOrDeallocate(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::ValidateSwap(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for LogNormalCalls { - fn from(value: ComputeSwapConstantCall) -> Self { - Self::ComputeSwapConstant(value) - } - } - impl ::core::convert::From for LogNormalCalls { - fn from(value: DfmmCall) -> Self { - Self::Dfmm(value) - } - } - impl ::core::convert::From for LogNormalCalls { - fn from(value: GetPoolParamsCall) -> Self { - Self::GetPoolParams(value) - } - } - impl ::core::convert::From for LogNormalCalls { - fn from(value: InitCall) -> Self { - Self::Init(value) - } - } - impl ::core::convert::From for LogNormalCalls { - fn from(value: InternalParamsCall) -> Self { - Self::InternalParams(value) - } - } - impl ::core::convert::From for LogNormalCalls { - fn from(value: UpdateCall) -> Self { - Self::Update(value) - } - } - impl ::core::convert::From for LogNormalCalls { - fn from(value: ValidateAllocateOrDeallocateCall) -> Self { - Self::ValidateAllocateOrDeallocate(value) - } - } - impl ::core::convert::From for LogNormalCalls { - fn from(value: ValidateSwapCall) -> Self { - Self::ValidateSwap(value) - } - } - ///Container type for all return fields from the `computeSwapConstant` function with signature `computeSwapConstant(uint256,bytes)` and selector `0x002e524b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeSwapConstantReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `dfmm` function with signature `dfmm()` and selector `0xafba13c4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DfmmReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getPoolParams` function with signature `getPoolParams(uint256)` and selector `0xdc178355` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolParamsReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `init` function with signature `init(address,uint256,bytes)` and selector `0x73cb2d03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InitReturn { - pub valid: bool, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `internalParams` function with signature `internalParams(uint256)` and selector `0x1edb71e5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InternalParamsReturn { - pub sigma: DynamicParam, - pub tau: DynamicParam, - pub strike: DynamicParam, - pub swap_fee: ::ethers::core::types::U256, - pub controller: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `validateAllocateOrDeallocate` function with signature `validateAllocateOrDeallocate(address,uint256,bytes)` and selector `0x8a04bdd5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ValidateAllocateOrDeallocateReturn { - pub valid: bool, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `validateSwap` function with signature `validateSwap(address,uint256,bytes)` and selector `0x68bd3e38` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ValidateSwapReturn { - pub valid: bool, - pub invariant: ::ethers::core::types::I256, - pub liquidity_delta: ::ethers::core::types::I256, - pub next_rx: ::ethers::core::types::U256, - pub next_ry: ::ethers::core::types::U256, - pub next_l: ::ethers::core::types::U256, - } -} diff --git a/crates/bindings/src/log_normal_extended_lib.rs b/crates/bindings/src/log_normal_extended_lib.rs deleted file mode 100644 index be48758ae..000000000 --- a/crates/bindings/src/log_normal_extended_lib.rs +++ /dev/null @@ -1,74 +0,0 @@ -pub use log_normal_extended_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod log_normal_extended_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static LOGNORMALEXTENDEDLIB_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(__abi); - pub struct LogNormalExtendedLib(::ethers::contract::Contract); - impl ::core::clone::Clone for LogNormalExtendedLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for LogNormalExtendedLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for LogNormalExtendedLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for LogNormalExtendedLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(LogNormalExtendedLib)) - .field(&self.address()) - .finish() - } - } - impl LogNormalExtendedLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - LOGNORMALEXTENDEDLIB_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for LogNormalExtendedLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/log_normal_lib.rs b/crates/bindings/src/log_normal_lib.rs deleted file mode 100644 index ea875091b..000000000 --- a/crates/bindings/src/log_normal_lib.rs +++ /dev/null @@ -1,125 +0,0 @@ -pub use log_normal_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod log_normal_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static LOGNORMALLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x1BW`@Q`\x94\x90\x81a\0i\x8290\x81PP\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 b\xA3\xEAU{\xD4\x1Fp\xFE'\xA8\xF7\xCD\x02\xDB\xFE\x9D\x82\xBD\x06\x0C\xAF\x1F\xDCP\x8C\x94\xAA\xC3\xCE\xA9\x7FdsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static LOGNORMALLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 b\xA3\xEAU{\xD4\x1Fp\xFE'\xA8\xF7\xCD\x02\xDB\xFE\x9D\x82\xBD\x06\x0C\xAF\x1F\xDCP\x8C\x94\xAA\xC3\xCE\xA9\x7FdsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static LOGNORMALLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct LogNormalLib(::ethers::contract::Contract); - impl ::core::clone::Clone for LogNormalLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for LogNormalLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for LogNormalLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for LogNormalLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(LogNormalLib)) - .field(&self.address()) - .finish() - } - } - impl LogNormalLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - LOGNORMALLIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - LOGNORMALLIB_ABI.clone(), - LOGNORMALLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for LogNormalLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/log_normal_math.rs b/crates/bindings/src/log_normal_math.rs deleted file mode 100644 index 7d7a6eaa0..000000000 --- a/crates/bindings/src/log_normal_math.rs +++ /dev/null @@ -1,74 +0,0 @@ -pub use log_normal_math::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod log_normal_math { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static LOGNORMALMATH_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct LogNormalMath(::ethers::contract::Contract); - impl ::core::clone::Clone for LogNormalMath { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for LogNormalMath { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for LogNormalMath { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for LogNormalMath { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(LogNormalMath)) - .field(&self.address()) - .finish() - } - } - impl LogNormalMath { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - LOGNORMALMATH_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for LogNormalMath { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/log_normal_set_up.rs b/crates/bindings/src/log_normal_set_up.rs deleted file mode 100644 index 3c39d1c38..000000000 --- a/crates/bindings/src/log_normal_set_up.rs +++ /dev/null @@ -1,2995 +0,0 @@ -pub use log_normal_set_up::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod log_normal_set_up { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("IS_TEST"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("IS_TEST"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("POOL_ID"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("POOL_ID"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("TEST_SWAP_FEE"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("TEST_SWAP_FEE"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeArtifacts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeArtifacts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "excludedArtifacts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeContracts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeContracts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "excludedContracts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeSenders"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeSenders"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("excludedSenders_"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("failed"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("failed"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPoolLiquidityToken"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "getPoolLiquidityToken", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("setUp"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("setUp"), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetArtifactSelectors"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "targetArtifactSelectors", - ), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedArtifactSelectors_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzSelector[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetArtifacts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetArtifacts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedArtifacts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetContracts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetContracts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedContracts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetInterfaces"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetInterfaces"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedInterfaces_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzInterface[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetSelectors"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetSelectors"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedSelectors_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzSelector[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetSenders"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetSenders"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetedSenders_"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("log"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_address"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_address"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_array"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_bytes"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_bytes"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_bytes32"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_bytes32"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_int"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_address"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_address"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_array"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_bytes"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_bytes"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_bytes32"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_bytes32"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_decimal_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "log_named_decimal_int", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_decimal_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "log_named_decimal_uint", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_int"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_string"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_string"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_uint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_string"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_string"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_uint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("logs"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("logs"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("BisectionLib_InvalidBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "BisectionLib_InvalidBounds", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("lower"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("upper"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("BisectionLib_RootOutsideBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "BisectionLib_RootOutsideBounds", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("lowerResult"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("upperResult"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Infinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Infinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Min"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Min"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("OutOfBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("OutOfBounds"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static LOGNORMALSETUP_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@R4b\0\0\xE2W`\x01`\xFF\x19\x81\x81`\x07T\x16\x17`\x07U`\x0BT\x16\x17`\x0BUb\0\0\x89b\0\0/b\0\x01iV[g\r\xE0\xB6\xB3\xA7d\0\0\x80\x82R` \x82\x01\x81\x90R`@\x82\x01\x81\x90Rf\n\xA8{\xEES\x80\0``\x83\x01\x81\x90R0`\x80\x90\x93\x01\x83\x90R`#\x82\x90U`$\x82\x90U`%\x91\x90\x91U`&U`'\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90\x91\x17\x90UV[b\0\0\x9Bg\r\xE0\xB6\xB3\xA7d\0\0`(UV[b\0\0\xADg\r\xE0\xB6\xB3\xA7d\0\0`)UV[b\0\0\xD2b\0\0\xCC`(T`)Tb\0\0\xC5b\0\x01\x89V[\x91b\0\x03kV[b\0\x02pV[`@Qa\xC2\xFB\x90\x81b\0\x18\x85\x829\xF3[bF\x1B\xCD`\xE5\x1B`\x80R` `\x84R`\"`\xA4R\x7FEther sent to non-payable functi`\xC4Ra7\xB7`\xF1\x1B`\xE4R`\x84`\x80\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x01cW`@RV[b\0\x01)V[`@Q\x90`\xA0\x82\x01`\x01`\x01`@\x1B\x03\x81\x11\x83\x82\x10\x17b\0\x01cW`@RV[`@Q\x90`\xA0\x82\x01`\x01`\x01`@\x1B\x03\x81\x11\x83\x82\x10\x17b\0\x01cW`@\x90\x81R`#T\x83R`$T` \x84\x01R`%T\x90\x83\x01R`&T``\x83\x01R`'T`\x01`\x01`\xA0\x1B\x03\x16`\x80\x83\x01RV[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x02\nW[` \x83\x10\x14b\0\x01\xF4WV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x01\xE8V[`\x1F\x81\x11b\0\x02\"WPPV[`\0\x90`*`\0R` `\0 \x90` `\x1F\x85\x01`\x05\x1C\x83\x01\x94\x10b\0\x02eW[`\x1F\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x02YWPPPV[\x81\x81U`\x01\x01b\0\x02LV[\x90\x92P\x82\x90b\0\x02CV[\x80Q\x90\x91\x90`\x01`\x01`@\x1B\x03\x81\x11b\0\x01cWb\0\x02\x9C\x81b\0\x02\x96`*Tb\0\x01\xD8V[b\0\x02\x15V[` \x80`\x1F\x83\x11`\x01\x14b\0\x02\xE3WP\x81\x90b\0\x02\xD2\x93\x94`\0\x92b\0\x02\xD7W[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x90V[`*UV[\x01Q\x90P8\x80b\0\x02\xBDV[`*`\0R`\x1F\x19\x83\x16\x94\x90\x91\x90\x7F\xBE\xCE\xD0\x95!\x04}\x05\xB8\x96\x0B~{\xCC\x1D\x12\x92\xCF>K*kc\xF4\x835\xCB\xDE_uE\xD2\x92`\0\x90[\x87\x82\x10b\0\x03RWPP\x83`\x01\x95\x96\x10b\0\x038W[PPP\x81\x1B\x01`*UV[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03-V[\x80`\x01\x85\x96\x82\x94\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01\x90b\0\x03\x17V[\x82Q` \x84\x01\x90\x81Q\x93`@\x86\x01\x91\x82Qb\0\x03\x88\x81\x88b\0\x0C\xEBV[\x91b\0\x03\x95\x90\x84b\0\r\x19V[b\0\x03\xA0\x90b\0\x11\xECV[\x90g\r\xE0\xB6\xB3\xA7d\0\0b\0\x03\xB6\x81\x99b\0\x11\xECV[b\0\x03\xC1\x90b\0\t2V[\x05b\0\x03\xCD\x90b\0\x13\xBAV[\x90b\0\x03\xD9\x91b\0\r\xBFV[b\0\x03\xE4\x90b\0\r\xE1V[b\0\x03\xEF\x91b\0\x06\xB6V[b\0\x03\xFA\x90b\0\t\x14V[\x90b\0\x04\x06\x91b\0\t\xB2V[b\0\x04\x11\x90b\0\t\xF7V[b\0\x04\x1C\x90b\0\n7V[\x85\x03\x85\x81\x11b\0\x05sWb\0\x042\x90\x85b\0\r\x19V[\x94\x86Q\x93Q\x92Q\x91b\0\x04F\x83\x85b\0\x0C\xEBV[\x94b\0\x04R\x91b\0\r\x19V[b\0\x04]\x90b\0\x11\xECV[\x92b\0\x04i\x90b\0\x11\xECV[b\0\x04t\x90b\0\t2V[\x05b\0\x04\x80\x90b\0\x13\xBAV[\x90b\0\x04\x8C\x91b\0\r\xBFV[b\0\x04\x97\x90b\0\r\xE1V[b\0\x04\xA2\x91b\0\n\xB9V[b\0\x04\xAD\x90b\0\t\x14V[\x90b\0\x04\xB9\x91b\0\t\xB2V[b\0\x04\xC4\x90b\0\t\xF7V[b\0\x04\xCF\x90b\0\n7V[\x82\x84Q\x90b\0\x04\xDE\x91b\0\rOV[\x90b\0\x04\xEA\x91b\0\rOV[\x91\x83b\0\x04\xFA\x81\x83\x86\x86b\0\x06\xD3V[\x91b\0\x05\x08\x92\x85\x85b\0\x07\xEDV[`@\x80Q` \x80\x82\x01\x94\x90\x94R\x80\x82\x01\x94\x90\x94R``\x80\x85\x01\x92\x90\x92R\x84Q`\x80\x80\x86\x01\x91\x90\x91R\x92\x85\x01Q`\xA0\x85\x01R\x84\x01Q`\xC0\x84\x01R\x83\x01Q`\xE0\x83\x01R\x90\x91\x01Q`\x01`\x01`\xA0\x1B\x03\x16a\x01\0\x80\x83\x01\x91\x90\x91R\x81Rb\0\x05pa\x01 \x82b\0\x01?V[\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x91\x90\x82\x03\x91\x82\x11b\0\x05\x97WV[b\0\x05sV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16b\0\x05\x97WV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16b\0\x05\x97WV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16b\0\x05\x97WV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16b\0\x05\x97WV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16b\0\x05\x97WV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16b\0\x05\x97WV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16b\0\x05\x97WV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16b\0\x05\x97WV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16b\0\x05\x97WV[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16b\0\x05\x97WV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16b\0\x05\x97WV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17b\0\x05\x97WV[\x90\x92\x82\x82\x10\x15b\0\x07\xA8Wb\0\x05p\x93b\0\x07^\x92\x84g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82b\0\x07\0\x83\x83b\0\r|V[\x10b\0\x07\x91WP`\x01`\x01`\xFF\x1B\x03\x95\x90P[\x83Q\x91b\0\x07-b\0\x07&\x83\x85b\0\r\xBFV[\x85b\0\r|V[\x10b\0\x07dWP`\x01`\x01`\xFF\x1B\x03\x92b\0\x07W\x92P\x90P[`@` \x82\x01Q\x91\x01Q\x90b\0\x0C\xEBV[\x92b\0\x06\xB6V[b\0\x06\xB6V[b\0\x07W\x92b\0\x07}b\0\x07\x84\x92b\0\x07\x8A\x94b\0\r\xBFV[\x90b\0\r|V[b\0\n\xD3V[\x91b\0\x07FV[b\0\x07\xA1\x91b\0\x07\x84\x91b\0\r|V[\x94b\0\x07\x13V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1A`$\x82\x01R\x7FtradingFunction: invalid x\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x92\x94\x93\x85\x93\x91\x92`\0\x80\x82\x12\x15b\0\x08\xAFW[\x80\x82\x12b\0\x08\x8CWP\x91b\0\x08wb\0\x08\x86\x92b\0\x05p\x97\x98\x95\x94[`@Q\x95\x86\x94` \x86\x01\x92`\xE0\x92\x95\x94\x91\x95a\x01\0\x85\x01\x96\x85R` \x85\x01R`@\x84\x01R\x80Q``\x84\x01R` \x81\x01Q`\x80\x84\x01R`@\x81\x01Q`\xA0\x84\x01R``\x81\x01Q`\xC0\x84\x01R`\x80`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16\x91\x01RV[\x03`\x1F\x19\x81\x01\x83R\x82b\0\x01?V[b\0\x0EXV[\x96b\0\x08\x99\x91Pb\0\r\x9FV[\x95b\0\x08\xA8\x82\x88\x86\x86b\0\x06\xD3V[\x90b\0\x08\0V[\x80\x82\x13b\0\x08\xD0WP\x91b\0\x08wb\0\x08\x86\x92b\0\x05p\x97\x98\x95\x94b\0\x08\x1CV[\x94\x90Pa\x03\xE9\x80\x82\x02\x91`\x01\x91\x81\x84\x04\x14\x90\x15\x17\x81\x16\x15b\0\t\x10Wa\x03\xE8`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x93b\0\t\t\x82\x86\x86\x86b\0\x06\xD3V[\x90b\0\x08\xAFV[\x85\x80\xFD[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15b\0\x05\x97WV[\x90g\x1B\xC1mgN\xC8\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15b\0\x05\x97WV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16b\0\x05\x97W`\0\x19\x83\x05\x03b\0\x05\x97WV[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15b\0\x05\x97WV[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16b\0\x05\x97W\x81\x84\x05\x14\x90\x15\x17\x15b\0\x05\x97WV[\x81\x15b\0\t\xCFW`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16b\0\x05\x97W\x05\x90V[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\x01`\xFF\x1B\x81\x14b\0\x05\x97W`\0\x03\x90V[b\0\n3b\0\n-b\0\n'g\x13\xA0K\xBD\xFD\xC9\xBE\x88b\0\n g\x1B\xC1mgN\xC8\0\0\x95b\0\t\x14V[\x05b\0\t\xE5V[b\0\x0F\x96V[b\0\t\x14V[\x05\x90V[`\0\x81\x12b\0\nCW\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x10`$\x82\x01RotoUint: negative`\x80\x1B`D\x82\x01R`d\x90\xFD[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16b\0\x05\x97WV[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17b\0\x05\x97WV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17b\0\x05\x97WV[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14b\0\x0C\xE5Wg\r\xE0\xB6\xB3\xA7d\0\0\x80\x82\x12\x15b\0\x0C\x8BW\x81\x15b\0\x0C\xAFW`\x01\x82`\x01\x1B\x91`\x02\x93\x83\x05`\x02\x03b\0\x05\x97W`\0\x83\x12\x80\x15b\0\x0C\xD3W[b\0\x0C\xC1W\x82\x15b\0\x0C\x8BWg\x1B\xC1mgN\xC8\0\0\x83\x14b\0\x0C\xAFW\x82\x12\x91\x82\x15b\0\x0C\x9DW\x92[b\0\x0BO\x84b\0\x16@V[\x80\x15b\0\x0C\x8BWb\0\x0B\xDBb\0\x0B\x8Bb\0\x0B\x85b\0\x0B\x7Fb\0\x0Byb\0\x0B\xE1\x95\x99\x97\x96\x99b\0\x11\xECV[b\0\x15\xA4V[b\0\x10\xEDV[b\0\tsV[b\0\x0B\xD5b\0\x0B\xA4b\0\x0B\x9E\x83b\0\x16lV[b\0\x06\x84V[b\0\x0B\xCEb\0\x0B\xC8b\0\x0B\xC1b\0\x0B\xBB\x86b\0\x16\x98V[b\0\x06\x9DV[\x85b\0\x16\x1EV[b\0\x05\x9DV[\x90b\0\x16\xE3V[b\0\n\xB9V[b\0\x15\xCDV[\x93`\0\x92[\x81\x84\x10b\0\x0C!WPPPPb\0\x05p\x91b\0\x0C\n\x91`\0\x14b\0\x0C\x10Wb\0\x15PV[b\0\t\xE5V[b\0\x0C\x1B\x90b\0\t\xE5V[b\0\x15PV[\x90\x91b\0\x0C\x80\x86b\0\x0Cyb\0\x0C>\x85b\0\x0B\xD5\x86\x99\x9Bb\0\x0F\x96V[b\0\x0B\xCEb\0\x0Cfb\0\x0C`b\0\x0CZb\0\x0C\n\x87\x80b\0\x16\x1EV[b\0\x13\xBAV[b\0\x15\xF6V[b\0\x0Cr\x83\x86b\0\x16\x1EV[\x90b\0\n\xB9V[\x90b\0\x06\xB6V[\x95\x01\x92\x91\x90b\0\x0B\xE6V[`@Qc\x07\xA0!'`\xE0\x1B\x81R`\x04\x90\xFD[b\0\x0C\xA8\x90b\0\n\x95V[\x92b\0\x0BDV[`@Qc\"\xEDY\x85`\xE2\x1B\x81R`\x04\x90\xFD[`@Qc-\x04\x83\xC5`\xE2\x1B\x81R`\x04\x90\xFD[Pg\x1B\xC1mgN\xC8\0\0\x83\x13b\0\x0B\x1CV[P`\0\x90V[\x90b\0\x0C\xF7\x90b\0\x10\xEDV[c;\x9A\xCA\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x15b\0\x05\x97Wb\0\x05p\x91b\0\r\xBFV[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15b\0\rJW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[`\0\x80\xFD[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15b\0\rJW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15b\0\rJW\x04\x90V[a\x03\xE7\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15b\0\rJWa\x03\xE8\x90\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15b\0\rJWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[g\x06\xF0[Y\xD3\xB2\0\0\x90\x80\x82\x02\x91\x82\x04\x14`\x01\x16\x15b\0\rJWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15b\0\rJWg\x1B\xC1mgN\xC8\0\0\x90\x04\x90V[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0\rJWV[\x91\x90\x82\x01\x80\x92\x11b\0\x05\x97WV[`\0\x93\x92\x91\x84\x91\x83\x82\x11b\0\x0FvWb\0\x0Es\x82\x82b\0\x17nV[b\0\x0E\x7F\x85\x83b\0\x17nV[`\0b\0\x0E\x8D\x82\x84b\0\t\x8DV[\x13b\0\x0FWWPb\0\x0E\xA2\x83\x86\x97\x96b\0\x05\x89V[`\x01\x94`\0\x91\x86\x80[b\0\x0E\xBDW[PPPPPPPP\x90PV[\x15b\0\x0F-W[P\x85\x96\x97\x98P\x80\x91b\0\x0E\xE2b\0\x0E\xDC\x8B\x88b\0\x0EJV[`\x01\x1C\x90V[\x99b\0\x0E\xEF\x8B\x87b\0\x17nV[\x90\x83b\0\x0E\xFD\x87\x84b\0\t\x8DV[\x13b\0\x0F WPP\x89\x92[\x87b\0\x0F\x15\x88\x86b\0\x05\x89V[\x92\x01\x93\x99\x98b\0\x0E\xABV[\x8B\x97P\x90\x94P\x92b\0\x0F\x08V[`\x14\x10\x80b\0\x0FLW[\x15b\0\x0FDW\x88b\0\x0E\xC4V[\x80\x80b\0\x0E\xB1V[P`@\x82\x10b\0\x0F7V[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x81\x01\x85\x90R`D\x90\xFD[\x80\x15b\0\x10\xE0WgV\x98\xEE\xF0fp\0\0\x81\x12\x15b\0\x0C\xE5WgV\x98\xEE\xF0fo\xFF\xFF\x19\x81\x13\x15b\0\x10\xD3W`\0b\0\x10\xC0b\0\x0F\xD1\x83b\0\x13\x8BV[b\0\x10~b\0\x0CZb\0\x0F\xF2b\0\x0F\xECb\0\x0B\xC8\x85b\0\x0E\tV[b\0\x16\xC3V[\x92b\0\x07^b\0\x10\xBAb\0\x10\xB4b\0\x10\xACb\0\x10\xA5b\0\x10\x9Fb\0\x10\x98b\0\x10\x92b\0\x10\x8Bb\0\x10\x85\x8Db\0\x10~b\0\x10xb\0\x10qb\0\x10kb\0\x0B\xC1b\0\x10eb\0\x10^b\0\x10Xb\0\x10Qb\0\x10K\x8Ab\0\x15xV[b\0\x05\xB6V[\x89b\0\x16\x1EV[b\0\x05\xD1V[\x87b\0\x16\x1EV[b\0\x05\xEAV[b\0\x06\x05V[\x83b\0\x16\x1EV[b\0\x06\x1EV[\x90b\0\x16\x1EV[b\0\x069V[\x8Cb\0\x16\x1EV[b\0\x06RV[\x8Ab\0\x16\x1EV[b\0\x06kV[\x88b\0\x16\x1EV[\x93\x80b\0\x16\x1EV[b\0\tPV[b\0\n{V[\x91\x12\x15b\0\x05pWb\0\x05p\x90b\0\n\x95V[Pg\x1B\xC1mgN\xC8\0\0\x90V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x90V[`\xB5\x81`\x01`\x88\x1B\x81\x10\x15b\0\x11\x9BW[\x80i\x01\0\0\0\0\0\0\0\0\0b\x01\0\0\x92\x10\x15b\0\x11\x8DW[e\x01\0\0\0\0\0\x81\x10\x15b\0\x11\x7FW[c\x01\0\0\0\x81\x10\x15b\0\x11qW[\x01\x02`\x12\x1C`\x01\x90\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x90\x1C\x80\x80\x92\x04\x10\x90\x03\x90V[`\x10\x1C\x91`\x08\x1B\x91b\0\x115V[` \x1C\x91`\x10\x1B\x91b\0\x11'V[`@\x1C\x91` \x1B\x91b\0\x11\x17V[Ph\xB5\0\0\0\0\0\0\0\0\x90P`\x80\x82\x90\x1Cb\0\x10\xFEV[\x15b\0\x11\xBBWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x90b\0\x12\x1A`\0\x82\x13b\0\x11\xB3V[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06b\0\x128\x82b\0\x17\x06V[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91`\x01l\x05\x04\xA88Bf4\xCD\xD8s\x8FT5`a\x1B\x03\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1D\x90V[`\x01`\xFF\x1B\x81\x14b\0\x13\xA8W`\0\x81\x12\x15b\0\x05pW\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15b\0\x0C\xE5Wh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15b\0\x15\x1CWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0``\x91k\x80\0\0\0\0\0\0\0\0\0\0\0\x85\x82\x85\x1B\x05\x01\x83\x1D\x94\x85\x02\x90\x03n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x81l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x84\x1D\x93n\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x83n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x94m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15b\0\rJWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15b\0\rJWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15b\0\rJWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15b\0\rJWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15b\0\rJWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15b\0\rJWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15b\0\rJWg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15b\0\rJWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15b\0\rJWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15b\0\rJWn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15b\0\rJW\x05\x90V[b\0\x17\x13\x81\x15\x15b\0\x11\xB3V[\x80`\x01\x80`\x80\x1B\x03\x10`\x07\x1B\x81\x81\x1C`\x01\x80`@\x1B\x03\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x80\x80Q\x81\x01\x03\x91a\x01\0\x92\x83\x81\x12b\0\x184W` \x83\x01Q`\xA0`@\x85\x01Q\x92`_\x19\x01\x12b\0\x17\xE3Wb\0\x17\xD8b\0\x05p\x95b\0\x17\xABb\0\x01iV[\x95`\x80\x81\x01Q\x87R`\xA0\x81\x01Q` \x88\x01R`\xC0\x81\x01Q`@\x88\x01R`\xE0\x81\x01Q``\x88\x01R\x01b\0\x0E5V[`\x80\x85\x01Rb\0\x06\xD3V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10b\0\x14\x9EW`\x005`\xE0\x1C\x80c\n\x92T\xE4\x14b\0\x01\x1AW\x80c\x1E\xD7\x83\x1C\x14b\0\x01\x14W\x80c*\xDE8\x80\x14b\0\x01\x0EW\x80c>^<#\x14b\0\x01\x08W\x80c?r\x86\xF4\x14b\0\x01\x02W\x80cb\n&\x07\x14b\0\0\xFCW\x80cf\xD9\xA9\xA0\x14b\0\0\xF6W\x80c\x85\"l\x81\x14b\0\0\xF0W\x80c\x91j\x17\xC6\x14b\0\0\xEAW\x80c\xB5P\x8A\xA9\x14b\0\0\xE4W\x80c\xBAAO\xA6\x14b\0\0\xDEW\x80c\xE0\xD7\xD0\xE9\x14b\0\0\xD8W\x80c\xE2\x0C\x9Fq\x14b\0\0\xD2W\x80c\xE2\x14\x85\xAD\x14b\0\0\xCCWc\xFAv&\xD4\x03b\0\x14\x9EWb\0\x14yV[b\0\x13\xB8V[b\0\x13-V[b\0\x13\rV[b\0\x12\xE4V[b\0\x11\x98V[b\0\x10)V[b\0\x0E\xC9V[b\0\x0B=V[b\0\n[V[b\0\t\xD0V[b\0\tEV[b\0\x08\x8BV[b\0\x06\xD7V[b\0\x01\xD2V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x91\x03\x12b\0\x01\xCCWV[b\0\x01pV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCWb\0\x01\xF0b\0\x19\x8BV[`@\x80Q\x90a\x13\x01\x80\x83\x01\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x80\x83\x10\x85\x84\x11\x17b\0\x06OW\x80b\0\x02&b\0\x1D \x94\x84\x86\x849b\0\x15\x86V[\x03\x90\x86\xF0\x80\x15b\0\x06!W`\x1E\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x82Q\x91\x81\x83\x01\x83\x81\x10\x86\x82\x11\x17b\0\x06OW\x83\x92b\0\x02q\x92\x849b\0\x15\xD2V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1F\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x02\xAE\x91\x16[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15b\0\x06'W\x81Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0`$\x83\x01R\x91\x85\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06sW[P`\x1FTb\0\x03\x0B\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x81;\x15b\0\x06'W\x82Q\x90\x81R0`\x04\x82\x01Rh\x05k\xC7^-c\x10\0\0`$\x82\x01R\x90\x84\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06UW[P`\x1ETb\0\x03a\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1FTb\0\x03x\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x82Q\x91a\x07\xA1\x90\x81\x84\x01\x92\x84\x84\x10\x87\x85\x11\x17b\0\x06OW\x84\x93b\0\x03\xC5\x93b\0\xBB%\x869`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R``\x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1D\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x80Qa0)\x80\x82\x01\x82\x81\x10\x85\x82\x11\x17b\0\x06OW\x82\x91b\x000!\x839\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1C\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x82\x17\x90Ub\0\x04@\x90b\0\x02\xA2V[\x81Q\x90a\x1FT\x80\x83\x01\x91\x83\x83\x10\x86\x84\x11\x17b\0\x06OW\x83\x92b\0\x04v\x92b\0\x9B\xD1\x859`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W` \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x82\x17\x81U\x92\x90b\0\x04\xAD\x90b\0\x02\xA2V[\x82Q\x91a;\x87\x80\x84\x01\x92\x90\x91\x83\x11\x84\x84\x10\x17b\0\x06OW\x83\x92b\0\x04\xE4\x92b\0`J\x859`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`!\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x05\x1A\x91\x16b\0\x02\xA2V[`\x1CT\x90\x91\x90b\0\x054\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x91\x80;\x15b\0\x06'W\x81Qc\t^\xA7\xB3`\xE0\x1B\x80\x82R`\x01`\x01`\xA0\x1B\x03\x94\x90\x94\x16`\x04\x82\x01R`\0\x19`$\x82\x01R\x90\x84\x90\x82\x90`D\x90\x82\x90\x89\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06-W[P`\x1FTb\0\x05\x96\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1CTb\0\x05\xAD\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x80;\x15b\0\x06'W\x91Q\x92\x83R`\x01`\x01`\xA0\x1B\x03\x16`\x04\x83\x01R`\0\x19`$\x83\x01R\x82\x90\x82\x90`D\x90\x82\x90\x87\x90Z\xF1\x80\x15b\0\x06!Wb\0\x05\xEEW\x82\x80\xF3[\x81b\0\x06\x12\x92\x90=\x10b\0\x06\x19W[b\0\x06\t\x81\x83b\0\x15IV[\x81\x01\x90b\0\x16eV[P8\x80\x82\x80\xF3[P=b\0\x05\xFDV[b\0\x15\xC6V[b\0\x16\x12V[b\0\x06G\x90\x84=\x86\x11b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[P8b\0\x05~V[b\0\x15\x01V[\x80b\0\x06eb\0\x06l\x92b\0\x15\x17V[\x80b\0\x01\xC0V[8b\0\x03IV[\x80b\0\x06eb\0\x06\x83\x92b\0\x15\x17V[8b\0\x02\xF3V[b\0\x01 V[` \x90` `@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10b\0\x06\xB9WPPPP\x90V[\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01b\0\x06\xAAV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x14T\x91\x82\x81R` \x80\x91\x01\x92`\x14`\0R\x7F\xCEm{R\x82\xBD\x9A6a\xAE\x06\x1F\xEE\xD1\xDB\xDANR\xAB\x07;\x1F\x92\x85\xBEn\x15]\x9C8\xD4\xEC\x91`\0\x90[\x82\x82\x10b\0\x07RWb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[`@Q\x91\x82\x91\x82b\0\x06\x90V[\x03\x90\xF3[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x07&V[`\0[\x83\x81\x10b\0\x07\x87WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x07vV[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01`\x05\x94\x83`@\x86`\x05\x1B\x85\x01\x01\x97\x01\x95`\0\x80\x94[\x87\x86\x10b\0\x07\xD6WPPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x80\x97\x98\x99`?\x19\x83\x82\x03\x01\x87R\x8AQ\x90\x82\x87\x82\x01\x92`\x01\x80`\xA0\x1B\x03\x81Q\x16\x83R\x01Q\x91\x87\x84\x83\x01R\x82Q\x80\x91R``\x90\x84\x82\x84\x01\x92\x82\x8A\x1B\x85\x01\x01\x94\x01\x92\x87[\x82\x81\x10b\0\x08CWPPPPP\x90\x80`\x01\x92\x9B\x01\x96\x01\x96\x01\x94\x97\x96\x95\x93\x92\x91\x90b\0\x07\xC2V[\x91\x93\x95\x80\x80`\x01\x93\x95\x97`_\x19\x87\x82\x03\x01\x89R\x89Qb\0\x08o\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x07sV[`\x1F\x80\x19\x91\x01\x16\x01\x01\x97\x01\x95\x01\x91\x01\x91\x8C\x95\x94\x93\x91\x92b\0\x08\x1DV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x1BTb\0\x08\xAC\x81b\0\x16\x7FV[`@\x91b\0\x08\xBE`@Q\x92\x83b\0\x15IV[\x80\x82R`\x1B`\0\x90\x81R` \x7F:\xD8\xAAO\x87TC#\xA9\xD1\xE5\xDD\x90/@\xC3VRzyUhq\x13\xDB_\x9A\x85\xADW\x9D\xC1\x81\x85\x01[\x84\x84\x10b\0\t\x07W`@Q\x80b\0\x07N\x88\x82b\0\x07\x98V[`\x02\x83`\x01\x92\x89Qb\0\t\x1A\x81b\0\x15,V[\x84\x80`\xA0\x1B\x03\x86T\x16\x81Rb\0\t2\x85\x87\x01b\0\x16\x98V[\x83\x82\x01R\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x08\xEFV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x16T\x91\x82\x81R` \x80\x91\x01\x92`\x16`\0R\x7F\xD83\x14}}\xC3U\xBAE\x9F\xC7\x88\xF6i\xE5\x8C\xFA\xF9\xDC%\xDD\xCD\x07\x02\xE8}i\xC7\xB5\x12B\x89\x91`\0\x90[\x82\x82\x10b\0\t\xAFWb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\t\x94V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x15T\x91\x82\x81R` \x80\x91\x01\x92`\x15`\0R\x7FU\xF4H\xFD\xEA\x98\xC4\xD2\x9E\xB3@u~\xF0\xA6l\xD0=\xBB\x958\x90\x8Aj\x81\xD9`&\xB7\x1E\xC4u\x91`\0\x90[\x82\x82\x10b\0\n:Wb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\n\x1FV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `@Qf\n\xA8{\xEES\x80\0\x81R\xF3[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01\x82`@\x85`\x05\x1B\x84\x01\x01\x96\x01\x94`\0\x80\x93[\x86\x85\x10b\0\n\xB9WPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x80\x96\x97\x98`?\x19\x83\x82\x03\x01\x86R\x89Q\x82``\x81\x88\x85\x01\x93`\x01\x80`\xA0\x1B\x03\x81Q\x16\x86R\x01Q\x93\x88\x83\x82\x01R\x84Q\x80\x94R\x01\x92\x01\x90\x85\x90[\x80\x82\x10b\0\x0B\x18WPPP\x90\x80`\x01\x92\x9A\x01\x95\x01\x95\x01\x93\x96\x95\x94\x92\x91\x90b\0\n\xA6V[\x82Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x8A\x94\x93\x84\x01\x93\x90\x92\x01\x91`\x01\x91\x90\x91\x01\x90b\0\n\xF5V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x19Tb\0\x0B^\x81b\0\x16\x7FV[b\0\x0Bm`@Q\x91\x82b\0\x15IV[\x81\x81R`\x19`\0\x90\x81R\x91` \x7F\x94I\x98'>G{IQD\xFB\x87\x94\xC9\x14\x19\x7F<\xCBF\xBE)\0\xF4i\x8F\xD0\xEFt<\x96\x95\x81\x84\x01[\x83\x86\x10b\0\x0B\xB7W`@Q\x80b\0\x07N\x87\x82b\0\n\x7FV[\x82`@Qb\0\x0B\xC6\x81b\0\x15,V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x85\x01\x80T\x80\x83Rb\0\x0B\xF4` \x84\x01[\x92`\0R` `\0 \x90V[\x90`\0\x91[\x81`\x07\x84\x01\x10b\0\rjW\x93\x86`\x02\x97\x96\x94\x82\x94b\0\x0Ck\x94`\x01\x9B\x98T\x91\x84\x82\x82\x10b\0\rGW[\x82\x82\x10b\0\r)W[\x82\x82\x10b\0\r\x0BW[\x82\x82\x10b\0\x0C\xEDW[\x82\x82\x10b\0\x0C\xCFW[\x82\x82\x10b\0\x0C\xB1W[\x82\x82\x10b\0\x0C\x94W[P\x10b\0\x0C~W[P\x90P\x03\x82b\0\x15IV[\x83\x82\x01R\x81R\x01\x92\x01\x95\x01\x94\x90b\0\x0B\x9FV[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x01\x86\x908b\0\x0C`V[\x83\x81\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x8D\x91\x01\x93\x01\x84b\0\x0CXV[`\x01`\x01`\xE0\x1B\x03\x19`@\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0COV[`\x01`\x01`\xE0\x1B\x03\x19``\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0CFV[`\x01`\x01`\xE0\x1B\x03\x19`\x80\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C=V[`\x01`\x01`\xE0\x1B\x03\x19`\xA0\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C4V[`\x01`\x01`\xE0\x1B\x03\x19`\xC0\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C+V[\x84b\0\r`\x8F\x93\x96\x86`\xE0\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x93\x01\x84b\0\x0C\"V[\x93\x94\x95P\x90\x91`\x01a\x01\0`\x08\x92b\0\x0E:\x87T\x8D`\xE0b\0\r\x96\x85\x84\x83\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[`\x01`\x01`\xE0\x1B\x03\x19`\xC0\x84\x81\x1B\x82\x16\x84\x88\x01R`\xA0\x85\x81\x1B\x83\x16`@\x89\x01R\x91\x93b\0\x0E)\x92\x90\x91\x85\x91\x87\x91\x90b\0\x0E\x17\x90b\0\x0E\0\x8C\x86\x86``\x92`\x80\x90b\0\r\xEF\x85\x82\x01\x85\x85\x85\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x92\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[`\x01`\x01`\xE0\x1B\x03\x19`@\x85\x90\x1B\x86\x16\x16\x90\x8C\x01RV[\x89\x01\x92\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x84\x01\x91\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x94\x01\x92\x01\x90\x88\x95\x94\x93\x92b\0\x0B\xF9V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x83\x01\x92\x81`@\x84`\x05\x1B\x83\x01\x01\x95\x01\x93`\0\x91[\x84\x83\x10b\0\x0E\x80WPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x84\x80\x80`\x01\x93`?\x19\x86\x82\x03\x01\x87R\x8AQb\0\x0E\xAE\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x07sV[`\x1F\x01`\x1F\x19\x16\x01\x01\x98\x01\x96\x95\x94\x91\x90\x91\x01\x92\x01\x90b\0\x0EoV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCW`\x18Tb\0\x0E\xEB\x81b\0\x16\x7FV[\x90`@\x92b\0\x0E\xFE`@Q\x93\x84b\0\x15IV[\x81\x83R` \x80\x84\x01\x90`\x18\x83R\x7F\xB1=-v\xD1\xF4\xB7\xBE\x83H\x82\xE4\x10\xB3\xE3\xA8\xAF\xAFi\xF86\0\xAE$\xDB5C\x91\xD27\x8D.\x95\x83\x92[\x85\x84\x10b\0\x0FHW`@Q\x80b\0\x07N\x89\x82b\0\x0EKV[\x81Q\x85\x91\x89T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x10\x1EW[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x0F\xEFWP`\x01\x14b\0\x0F\xABW[PPb\0\x0F\x9C\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x98\x01\x93\x01\x92\x96b\0\x0F0V[\x95Pb\0\x0F\xBD\x8D`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x0F\xDBWPP\x94\x90\x94\x01\x93b\0\x0F\x9C\x81b\0\x0F\x8AV[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x0F\xC1V[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x0F\x9C\x81b\0\x0F\x8AV[cNH{q`\xE0\x1B\x8BR`\"`\x04R`$\x8B\xFD[\x91`\x7F\x16\x91b\0\x0FbV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x1ATb\0\x10J\x81b\0\x16\x7FV[b\0\x10Y`@Q\x91\x82b\0\x15IV[\x81\x81R`\x1A`\0\x90\x81R\x91` \x7F\x05|8J}\x1CT\xF3\xA1\xB2\xE5\xE6{&\x17\xB8\"O\xDF\xD1\xEAr4\xEE\xA5s\xA6\xFFf_\xF6>\x81\x84\x01[\x83\x86\x10b\0\x10\xA3W`@Q\x80b\0\x07N\x87\x82b\0\n\x7FV[\x82`@Qb\0\x10\xB2\x81b\0\x15,V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x85\x01\x80T\x80\x83Rb\0\x10\xD9` \x84\x01b\0\x0B\xE8V[\x90`\0\x91[\x81`\x07\x84\x01\x10b\0\x11[W\x93\x86`\x02\x97\x96\x94\x82\x94b\0\x11H\x94`\x01\x9B\x98T\x91\x84\x82\x82\x10b\0\rGW\x82\x82\x10b\0\r)W\x82\x82\x10b\0\r\x0BW\x82\x82\x10b\0\x0C\xEDW\x82\x82\x10b\0\x0C\xCFW\x82\x82\x10b\0\x0C\xB1W\x82\x82\x10b\0\x0C\x94WP\x10b\0\x0C~WP\x90P\x03\x82b\0\x15IV[\x83\x82\x01R\x81R\x01\x92\x01\x95\x01\x94\x90b\0\x10\x8BV[\x93\x94\x95P\x90\x91`\x01a\x01\0`\x08\x92b\0\x11\x87\x87T\x8D`\xE0b\0\r\x96\x85\x84\x83\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x94\x01\x92\x01\x90\x88\x95\x94\x93\x92b\0\x10\xDEV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCW`\x17Tb\0\x11\xBA\x81b\0\x16\x7FV[\x90`@\x92b\0\x11\xCD`@Q\x93\x84b\0\x15IV[\x81\x83R` \x80\x84\x01\x90`\x17\x83R\x7F\xC6$\xB6l\xC0\x13\x8B\x8F\xAB\xC2\t$\x7Fr\xD7X\xE1\xCF3CumT;\xAD\xBF$!+\xED\x8C\x15\x95\x83\x92[\x85\x84\x10b\0\x12\x17W`@Q\x80b\0\x07N\x89\x82b\0\x0EKV[\x81Q\x85\x91\x89T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x12\xD9W[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x12\xBEWP`\x01\x14b\0\x12zW[PPb\0\x12k\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x98\x01\x93\x01\x92\x96b\0\x11\xFFV[\x95Pb\0\x12\x8C\x8D`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x12\xAAWPP\x94\x90\x94\x01\x93b\0\x12k\x81b\0\x12YV[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x12\x90V[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x12k\x81b\0\x12YV[\x91`\x7F\x16\x91b\0\x121V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` b\0\x13\x03b\0\x18\x19V[`@Q\x90\x15\x15\x81R\xF3[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `\"T`@Q\x90\x81R\xF3[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x13T\x91\x82\x81R` \x80\x91\x01\x92`\x13`\0R\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90\x91`\0\x90[\x82\x82\x10b\0\x13\x97Wb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x13|V[4b\0\x06\x8AW` 6`\x03\x19\x01\x12b\0\x01\xCCW`\x1CT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15b\0\x06'W`\xE0`$\x91`@Q\x92\x83\x80\x92c\x06\x8B\xCD\x8D\x85\x1B\x82R`\x045`\x04\x83\x01RZ\xFA\x80\x15b\0\x06!W`\xC0b\0\x14)\x91b\0\x07N\x93`\0\x91b\0\x14CW[P\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x90V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R\x90\x81\x90` \x82\x01\x90V[b\0\x14j\x91P`\xE0=`\xE0\x11b\0\x14qW[b\0\x14a\x81\x83b\0\x15IV[\x81\x01\x90b\0\x18\xF8V[8b\0\x14\x1AV[P=b\0\x14UV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `\xFF`\x07T\x16`@Q\x90\x15\x15\x81R\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x06OW`@RV[`@\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OW`@RV[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0\x15\x81WV[`\0\x80\xFD[\x90``\x82R`\x06``\x83\x01Re\x0E\x8D\xEDl\xAD\xCB`\xD3\x1B`\x80\x83\x01R`\xA0` \x83\x01R`\x01`\xA0\x83\x01R`\x0B`\xFB\x1B`\xC0\x83\x01R`\x12`@`\xE0\x84\x01\x93\x01RV[`@Q=`\0\x82>=\x90\xFD[\x90``\x82R`\x06``\x83\x01RetokenY`\xD0\x1B`\x80\x83\x01R`\xA0` \x83\x01R`\x01`\xA0\x83\x01R`Y`\xF8\x1B`\xC0\x83\x01R`\x12`@`\xE0\x84\x01\x93\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81` \x91\x03\x12b\0\x01\xCCWQ\x80\x15\x15\x81\x03b\0\x15\x81W\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x06OW`\x05\x1B` \x01\x90V[\x90\x81T\x91b\0\x16\xA7\x83b\0\x16\x7FV[\x92`@\x91b\0\x16\xBA`@Q\x95\x86b\0\x15IV[\x81\x85R`\0\x90\x81R` \x80\x82 \x93\x82\x91\x90\x81\x88\x01[\x85\x84\x10b\0\x16\xE0WPPPPPPPV[\x81Q\x85\x91\x88T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x17\xA2W[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x17\x87WP`\x01\x14b\0\x17CW[PPb\0\x174\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x97\x01\x93\x01\x92\x95b\0\x16\xCFV[\x95Pb\0\x17U\x8C`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x17sWPP\x94\x90\x94\x01\x93b\0\x174\x81b\0\x17\"V[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x17YV[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x174\x81b\0\x17\"V[\x91`\x7F\x16\x91b\0\x16\xFAV[\x90`\x04\x91c\x06g\xF9\xD7`\xE4\x1B\x81Rb\0\x17\xD0\x82Q\x80\x93` \x86\x85\x01\x91\x01b\0\x07sV[\x01\x01\x90V[=\x15b\0\x18\x14W=\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11b\0\x06OW`@Q\x91b\0\x18\x08`\x1F\x82\x01`\x1F\x19\x16` \x01\x84b\0\x15IV[\x82R=`\0` \x84\x01>V[``\x90V[`\x07T`\x08\x1C`\xFF\x16\x15b\0\x187W`\x07T`\x08\x1C`\xFF\x16\x90V[\x90V[`\0sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0\x18YWP\x90V[`\0\x91P\x81\x90`@Q\x82\x81b\0\x18\x9A` \x82\x01\x90`@\x82\x01\x91sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x81R` e\x19\x98Z[\x19Y`\xD2\x1B\x91\x01RV[\x03b\0\x18\xAF`\x1F\x19\x91\x82\x81\x01\x85R\x84b\0\x15IV[b\0\x18\xD5`@Q\x91\x82b\0\x18\xC8` \x82\x01\x96\x87b\0\x17\xADV[\x03\x90\x81\x01\x83R\x82b\0\x15IV[Q\x92Z\xF1Pb\0\x184b\0\x18\xE8b\0\x17\xD5V[` \x80\x82Q\x83\x01\x01\x91\x01b\0\x16eV[\x90\x81`\xE0\x91\x03\x12b\0\x01\xCCW`@Q\x90`\xE0\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OWb\0\x19\x83\x91`\xC0\x91`@Rb\0\x196\x81b\0\x15lV[\x84Rb\0\x19F` \x82\x01b\0\x15lV[` \x85\x01Rb\0\x19Y`@\x82\x01b\0\x15lV[`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01b\0\x15lV[`\xC0\x82\x01R\x90V[`@\x80Qa\x13\x01\x80\x82\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x83\x82\x10\x83\x83\x11\x17b\0\x06OW\x83b\0\x19\xBFb\0\x1D \x93\x83\x85\x849b\0\x15\x86V[\x03`\0\x94\x85\xF0\x80\x15b\0\x06!W`\x1E\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x84Q\x91\x81\x83\x01\x83\x81\x10\x85\x82\x11\x17b\0\x06OW\x83\x92b\0\x1A\x0C\x92\x849b\0\x15\xD2V[\x03\x90\x83\xF0\x80\x15b\0\x06!W`\x1F\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x1AB\x91\x16b\0\x02\xA2V[\x80;\x15b\0\x06'W\x83Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0`$\x83\x01R\x91\x84\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1D\x08W[P`\x1FTb\0\x1A\x9F\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x81;\x15b\0\x06'W\x84Q\x90\x81R0`\x04\x82\x01Rh\x05k\xC7^-c\x10\0\0`$\x82\x01R\x90\x83\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xF1W[P`\x1ETb\0\x1A\xF5\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1FTb\0\x1B\x0C\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x84Q\x91a\x07\xA1\x90\x81\x84\x01\x92\x84\x84\x10\x86\x85\x11\x17b\0\x06OW\x84\x93b\0\x1BY\x93b\0\xBB%\x869`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R``\x01\x90V[\x03\x90\x83\xF0\x80\x15b\0\x06!W`\x1D\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x82Q\x90a0)\x90\x81\x83\x01\x90\x81\x11\x83\x82\x10\x17b\0\x06OW\x82\x91b\x000!\x839\x03\x90\x82\xF0\x80\x15b\0\x06!W`\x1C\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x1B\xD7\x91\x16b\0\x02\xA2V[`\x1CT\x90\x92\x90b\0\x1B\xF1\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x92\x80;\x15b\0\x06'W\x81Qc\t^\xA7\xB3`\xE0\x1B\x80\x82R`\x01`\x01`\xA0\x1B\x03\x95\x90\x95\x16`\x04\x82\x01R`\0\x19`$\x82\x01R` \x94\x91\x85\x90\x82\x90`D\x90\x82\x90\x88\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xCFW[P`\x1FTb\0\x1CV\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1CTb\0\x1Cm\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x91\x81;\x15b\0\x06'W\x92Q\x92\x83R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x83\x01R`\0\x19`$\x83\x01R\x90\x91\x83\x91\x83\x91`D\x91\x83\x91\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xB2WPPV[\x81b\0\x1C\xCC\x92\x90=\x10b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[PV[b\0\x1C\xE9\x90\x85=\x87\x11b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[P8b\0\x1C>V[\x80b\0\x06eb\0\x1D\x01\x92b\0\x15\x17V[8b\0\x1A\xDDV[\x80b\0\x06eb\0\x1D\x18\x92b\0\x15\x17V[8b\0\x1A\x87V\xFE`\xE0`@\x90\x80\x82R4b\0\x04\x99WPb\0\x13\x01\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xE6V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04JW\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04DW\x82b\0\0V\x91\x85\x01b\0\x05ZV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04DW\x83\x91b\0\0u\x91\x84\x01b\0\x05ZV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04?W\x84Q\x94\x86\x86\x11b\0\x04)W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06~V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xD8W[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03pW\x89\x92b\0\x03dW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03PW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06~V[\x82\x81\x11b\0\x02\xFBW[P\x87\x91\x83\x11`\x01\x14b\0\x02\x97W\x88\x92b\0\x02\x8BW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06~V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02kWPP`\x01\x14b\0\x02+W[Pb\0\x01m\x92P\x03\x82b\0\x04\xE6V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02\x17WP\x83\x90RQ\x90 `\xC0Ra\x0CE\x90\x81b\0\x06\xBC\x829`\x80Q\x81a\x06\x84\x01R`\xA0Q\x81a\nM\x01R`\xC0Q\x81a\nt\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02RWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x028V[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xE4WPP\x84\x11b\0\x02\xCAW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xBCV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xA9V[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03FW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x037WPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x03'V[\x92P\x81\x92b\0\x03\x18V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xC1WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xA7W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x99V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x7FV[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x04\x1FW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\x10WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x01V[\x92P\x81\x92b\0\x03\xF4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\nV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04)W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x06%W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04)W` \x90`@Q\x92b\0\x05\x95\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xE6V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xD0W`\0[\x81\x81\x10b\0\x05\xBCWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xA6V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xB0W[` \x83\x10\x14b\0\x06\x9AWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\x8EV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003`\xA0`@\x90\x80\x82R4b\0\x01[WP`\x01\x80U\x80Qa\x11D\x80\x82\x01\x91`\x01`\x01`@\x1B\x03\x91\x82\x84\x11\x82\x85\x10\x17b\0\x01EWb\0\x1E\xE5\x829\x80`\0\x93\x03\x90\x83\xF0\x80\x15b\0\x01;W`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81\x90R\x80;\x15b\0\0\xE9W\x90\x82\x80\x92`\x84\x86Q\x80\x96\x81\x93c&lE\xBB`\xE1\x1B\x83R\x89`\x04\x84\x01R\x81`D\x84\x01R```$\x84\x01R\x81`d\x84\x01RZ\xF1\x80\x15b\0\0\xDFWb\0\0\xB8W[\x83Qa\x1D<\x90\x81b\0\x01\xA9\x829`\x80Q\x81\x81\x81a\x0Bj\x01Ra\x10\x08\x01R\xF3[\x82\x11b\0\0\xCBWP\x81R8\x80\x80b\0\0\x99V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x84Q=\x84\x82>=\x90\xFD[\x83QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x83Q=\x84\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003`\x80\x80`@R4b\0\0\xECW`@Q`\x1Fb\0;\x878\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17b\0\0\xD6W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12b\0\0\x86WQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x90\x81\x90\x03b\0\0\x81W`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x90\x91\x17\x90U`@Qa:M\x90\x81b\0\x01:\x829\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0C\x1CW`\x005`\xE0\x1C\x80c\x04 X\n\x14a\x01\xACW\x80c\x12\x06I\xC5\x14a\x01\xA7W\x80c\x13N\xAD\x12\x14a\x01\xA2W\x80c\x1E\x97\x8C\xB0\x14a\x01\x9DW\x80c0m\xB4k\x14a\x01\x98W\x80c3\"f\xF3\x14a\x01\x93W\x80c9(\xFF\x97\x14a\x01\x8EW\x80c;&\x8D]\x14a\x01\x89W\x80c;M\x100\x14a\x01\x84W\x80cN\x81\x7F\xD9\x14a\x01\x7FW\x80cO\xD6|X\x14a\x01zW\x80c^\xB4\x08\xFC\x14a\x01uW\x80cb7V\x9F\x14a\x01pW\x80cme\"\x99\x14a\x01kW\x80c\x7F\x17@\x9C\x14a\x01fW\x80c\x81\xB5\xFA\xC2\x14a\x01aW\x80c\x90.\xCA\xA2\x14a\x01\\W\x80c\xA8\xC6.v\x14a\x01WW\x80c\xAFNC\x7F\x14a\x01RW\x80c\xB0\x9D\x04\xE5\x14a\x01MW\x80c\xCB\x1FU2\x14a\x01HW\x80c\xCE\x15;\xF4\x14a\x01CW\x80c\xE9G\x16\xD5\x14a\x01>W\x80c\xEE>\x8C\xFB\x14a\x019W\x80c\xF3\r7\xF2\x14a\x014Wc\xF9\xC2\x82\x11\x03a\x0C\x1CWa\x0C\0V[a\x0B\xD0V[a\x0B\x9FV[a\x0BdV[a\x0B(V[a\n\xE3V[a\n\xB0V[a\n\x94V[a\nkV[a\nBV[a\n\x15V[a\tsV[a\tWV[a\x08\xEAV[a\x08\xCEV[a\x08\xA5V[a\x08\x89V[a\x08ZV[a\x08\x1FV[a\x05\x82V[a\x05+V[a\x04\xFCV[a\x04\xD7V[a\x04DV[a\x03(V[a\x02\xADV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\0[\x83\x81\x10a\x02dWPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01a\x02TV[\x90` \x91a\x02\x8D\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01a\x02QV[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90` a\x02\xAA\x92\x81\x81R\x01\x90a\x02tV[\x90V[4a\x03\x05W`@6`\x03\x19\x01\x12a\x03\0Wa\x02\xFC`@Q`\x02` \x82\x01R`\x045`@\x82\x01R`$5``\x82\x01R``\x81Ra\x02\xE8\x81a\x03\xD4V[`@Q\x91\x82\x91` \x83R` \x83\x01\x90a\x02tV[\x03\x90\xF3[a\x02\x01V[a\x01\xB1V[`\x80\x90`\x03\x19\x01\x12a\x03\0W`\x045\x90`$5\x90`D5\x90`d5\x90V[4a\x03\x05W` a\x03Da\x03;6a\x03\nV[\x92\x91\x90\x91a\r\x04V[`@Q\x90\x81R\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\xA0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[a\x03\x9DV[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[``\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04?WV[`\0\x80\xFD[4a\x03\x05W`\xE06`\x03\x19\x01\x12a\x03\0W`\xA06`C\x19\x01\x12a\x04\xB8Wa\x02\xFCa\x04\xAC`@Qa\x04s\x81a\x03\xB3V[`D5\x81R`d5` \x82\x01R`\x845`@\x82\x01R`\xA45``\x82\x01R`\xC45a\x04\x9C\x81a\x04.V[`\x80\x82\x01R`$5`\x045a\x16\xB0V[`@Q\x91\x82\x91\x82a\x02\x99V[a\x03LV[``\x90`\x03\x19\x01\x12a\x03\0W`\x045\x90`$5\x90`D5\x90V[4a\x03\x05W` a\x03Da\x04\xF6a\x04\xED6a\x04\xBDV[\x91\x92\x90\x92a\x12+V[\x91a\x18\x99V[4a\x03\x05W` a\x03Da\x05\x0F6a\x04\xBDV[\x90a\x05\"a\x05\x1C\x84a\x12+V[\x93a\x13\xB2V[\x92\x91\x90\x91a\x19\x86V[4a\x03\x05W` a\x03Da\x05>6a\x04\xBDV[\x90a\x05Ka\x05\x1C\x84a\x12+V[\x92\x90Pa\x1C\xF0V[\x80\x15\x15\x03a\x04?WV[\x90\x92`\x80\x92a\x02\xAA\x95\x94\x15\x15\x83R` \x83\x01R`@\x82\x01R\x81``\x82\x01R\x01\x90a\x02tV[4a\x03\x05W``6`\x03\x19\x01\x12a\x03\0W`$5`\x045a\x05\xA2\x82a\x05SV[`D5\x90a\x05\xF5a\x05\xB1a\r\xFBV[\x92a\x05\xBAa\r\xFBV[\x93a\x05\xC4\x84a\x13\xB2V[` \x84\x99\x93\x95\x92\x99\x01\x94`@\x99\x8A\x86\x01\x92\x83R\x86R\x84Ra\x05\xE4\x87a\x12+V[\x95\x86\x91\x85Q\x90\x87Q\x90Q\x91\x8Aa\x12\xD9V[\x92\x15a\x07\x97W\x92\x82a\x06=\x90\xFD[\x90\x91\x92a\r\x1B\x90a\r\x14\x83a\x12+V[\x90\x85a\x14\xABV[\x90`@Q\x93a\rR\x85a\rD\x83\x86\x88` \x85\x01`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x03`\x1F\x19\x81\x01\x87R\x86a\x04\x0CV[`\0Ta\ri\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92Wa\r\x92\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\r\xB9W[Pa\r\xB3\x90a\x12+V[\x93a\x14\xF9V[a\r\xB3\x91\x93Pa\r\xE0\x90` =` \x11a\r\xE7W[a\r\xD8\x81\x83a\x04\x0CV[\x81\x01\x90a\x0C\xD2V[\x92\x90a\r\xA9V[P=a\r\xCEV[\x91a\x04\xF6a\x02\xAA\x93a\x12+V[`@Q\x90``\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@R`\0`@\x83\x82\x81R\x82` \x82\x01R\x01RV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90`\x01\x82\x01\x80\x92\x11a\x0EOWV[a\x0E+V[\x91\x90\x82\x01\x80\x92\x11a\x0EOWV[\x15a\x0EhWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: x reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x0EOWV[\x91\x90\x82\x03\x91\x82\x11a\x0EOWV[\x15a\x0E\xDCWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: y reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xC0\x91\x03\x12a\x03\0W\x81Qa\x0FC\x81a\x05SV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[a\x02\xAA\x93\x92``\x92`\x01\x80`\xA0\x1B\x03\x16\x82R` \x82\x01R\x81`@\x82\x01R\x01\x90a\x02tV[\x91a\x08\x9Fa\x02\xAA\x93a\x12+V[\x90\x91\x92a\x0F\xAB\x90a\x0F\xA4\x83a\x12+V[\x90\x85a!:V[\x90`@Q\x93a\x0F\xD4\x85a\rD\x83\x87\x87` \x85\x01`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`\0Ta\x0F\xEB\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92Wa\x10\x14\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\x10;W[Pa\x105\x90a\x12+V[\x93a!gV[a\x105\x91\x93Pa\x10Y\x90` =` \x11a\r\xE7Wa\r\xD8\x81\x83a\x04\x0CV[\x92\x90a\x10+V[\x91\x90` \x92\x83\x81\x83\x03\x12a\x03\0W\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x82\x11a\x11xW\x01\x82`\x1F\x82\x01\x12\x15a\x11\x1FW\x80Q\x91\x82\x11a\x03\xCFW`@Q\x92a\x10\xAD`\x1F\x84\x01`\x1F\x19\x16\x87\x01\x85a\x04\x0CV[\x82\x84R\x85\x83\x83\x01\x01\x11a\x10\xCAW\x84\x83\x94\x95a\x02\xAA\x94\x01\x91\x01a\x02QV[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x87\x90R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xA0\x91\x03\x12a\x04\xB8W`@Qa\x11\xE0\x81a\x03\xB3V[`\x80\x80\x82\x94\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R``\x81\x01Q``\x85\x01R\x01Q\x91a\x12\x13\x83a\x04.V[\x01RV[\x90`\xA0\x82\x82\x03\x12a\x03\0Wa\x02\xAA\x91a\x11\xC8V[`\x80\x90`@Qa\x12:\x81a\x03\xB3V[`\0\x92\x81\x84\x80\x93R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x01Ra\x12la\x06\xE4a\x06\xE4\x84T`\x01\x80`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07\x92W`@Qc\xDC\x17\x83U`\xE0\x1B\x81R`\x04\x81\x01\x92\x90\x92R\x82\x90\x82\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07\x8DW\x82a\x02\xAA\x93\x92a\x12\xB6W[PP` \x80\x82Q\x83\x01\x01\x91\x01a\x12\x17V[a\x12\xD2\x92P=\x80\x91\x83>a\x12\xCA\x81\x83a\x04\x0CV[\x81\x01\x90a\x10`V[8\x80a\x12\xA5V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x84\x90R``\x81\x01\x85\x90R\x93\x91\x92a\x13\x01\x85`\x80\x81\x01a\rDV[`\0T`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07\x92Wa\x136\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\x13]W[Pa\x13W\x90a\x12+V[\x93a$\xF7V[a\x13W\x91\x93Pa\x13{\x90` =` \x11a\r\xE7Wa\r\xD8\x81\x83a\x04\x0CV[\x92\x90a\x13MV[\x90\x81` \x91\x03\x12a\x03\0WQa\x02\xAA\x81a\x04.V[\x90\x81``\x91\x03\x12a\x03\0W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`\0T\x90\x91\x90a\x13\xCC\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92W` `\x04\x91`@Q\x92\x83\x80\x92c+\xEE\x84\xF1`\xE2\x1B\x82RZ\xFA\x90\x81\x15a\x07\x8DW`\0\x91a\x14|W[P`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07\x92W`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x93\x90\x93R``\x90\x83\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07\x8DW`\0\x80\x93`\0\x93a\x14EW[P\x92\x91\x90V[\x91\x93PPa\x14k\x91P``=``\x11a\x14uW[a\x14c\x81\x83a\x04\x0CV[\x81\x01\x90a\x13\x97V[\x92\x90\x92\x918a\x14?V[P=a\x14YV[a\x14\x9E\x91P` =` \x11a\x14\xA4W[a\x14\x96\x81\x83a\x04\x0CV[\x81\x01\x90a\x13\x82V[8a\x13\xFAV[P=a\x14\x8CV[a\x06#\x90a\x14\xCDa\x14\xC8a\x14\xC3\x86a\x02\xAA\x97\x96a&MV[a&\xC2V[a&\xF5V[\x92Qa(\xE5V[a\x14\xF7\x93``\x92\x96\x95\x93a\x01\0\x83\x01\x97\x83R` \x83\x01R`@\x82\x01R\x01\x90a\t\xDFV[V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a\x16}W[\x85\x85\x12a\x16^W\x90a\x15,a\x15:\x92[`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x03`\x1F\x19\x81\x01\x83R\x82a\x04\x0CV[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa\x15P\x81\x85a6\xC2V[\x92a\x15[\x81\x86a6\xC2V[\x88a\x15f\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a\x15z\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a\x15\x95W[PPPPPPPPPP\x90V[\x15a\x15\xF6W[P\x86\x97\x98P\x81\x92a\x15\xB5a\x15\xAF\x8B\x89a\x0ETV[`\x01\x1C\x90V[\x99a\x15\xC0\x8B\x88a6\xC2V[\x90\x84a\x15\xCC\x88\x84a\x18EV[\x13a\x15\xEAWPP\x89\x93[\x88a\x15\xE1\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a\x15\x83V[\x8B\x98P\x90\x95P\x93a\x15\xD6V[`\x14\x10\x80a\x16\x11W[\x15a\x16\nW\x88a\x15\x9BV[\x80\x80a\x15\x88V[P\x80\x83\x10a\x15\xFFV[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x86\x90R`$\x81\x01\x91\x90\x91R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81R`\x04\x81\x01\x91\x90\x91R`$\x81\x01\x92\x90\x92RP`D\x90\xFD[\x93P\x91a\x16j\x90a)\x11V[\x91a\x16w\x84\x83\x85\x84a'\xECV[\x93a\x15\nV[\x85\x85\x13a\x16\x91W\x90a\x15,a\x15:\x92a\x15\x1AV[\x93P\x94a\x16\x9D\x90a'8V[\x94a\x16\xAA\x84\x83\x88\x84a'\xECV[\x93a\x16}V[\x91a\x16\xC1a\x14\xC8a\x14\xC3\x83\x85a2\x87V[\x91g\r\xE0\xB6\xB3\xA7d\0\0\x92\x83\x03\x92\x83\x11a\x0EOWa\x17\x18\x82a\x17\x04a\x16\xF9a\x14\xC8a\x14\xC3\x84a\x16\xF3a\x176\x9A\x8Ca);V[\x97a&MV[a\x06#\x85\x84Qa(\xE5V[\x92a\x17\x11\x82\x82\x86\x8Aa'\xECV[\x84\x88a$\xF7V[\x90`@Q\x94` \x86\x01R`@\x85\x01R``\x84\x01R`\x80\x83\x01\x90a\t\xDFV[a\x01\0\x81Ra\x01 \x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@R\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x0EOWV[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x0EOWV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\x0EOWV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x0EOWV[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x90g\x1B\xC1mgN\xC8\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\x0EOW`\0\x19\x83\x05\x03a\x0EOWV[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\x0EOW\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x81\x15a\x18\x83W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\x0EOW\x05\x90V[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[\x91\x90\x91a\x18\xD4` \x83\x01\x93a\x18\xCE\x85Qa\x18\xC6a\x18\xBC`@\x88\x01\x92\x83Q\x90a+\x86V[\x97Q\x82Q\x90a+\xAFV[\x90Q\x90a'WV[\x92a'xV[\x92g\r\xE0\xB6\xB3\xA7d\0\0\x80\x85\x12\x15a\x19RW`\0\x85\x13\x15a\x19GW`\0\x85\x82\x03\x95\x12\x81\x86\x12\x81\x16\x91\x86\x13\x90\x15\x16\x17a\x0EOWa\x19;a\x19@\x92a\x196a\x19(a\x14\xC8\x94a\x19#a\x02\xAA\x99a+\xCEV[a\x18EV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x17\xB8V[a,ZV[\x90Qa(\xE5V[PPPPP`\0\x19\x90V[PPPPP`\0\x90V[\x90\x95\x94\x92\x93a\x14\xF7\x94`\x80\x93a\x01 \x84\x01\x98\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01\x90a\t\xDFV[\x90\x92\x91\x82\x86Q` \x88\x01Q`@\x89\x01Q\x90``\x8A\x01Q\x92a\x19\xA6\x83a.\x0BV[a\x19\xAF\x90a\x1BpV[\x93a\x19\xB9\x90a\x17YV[\x90a\x19\xC3\x8Aa.\xC9V[a\x19\xCC\x8Ba\x1C\x97V[a\x19\xD5\x91a/{V[a\x19\xDE\x8Ba\x1C\x97V[a\x19\xE7\x84a.\xF8V[a\x19\xF0\x91a\x17\xB8V[a\x19\xFA\x90\x88a/{V[a\x1A\x03\x91a/\xF8V[a\x1A\x0C\x90a0\x16V[\x93a\x1A\x16\x84a2\xFEV[a\x1A\x1F\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a\x1A3\x90a,ZV[\x90a\x1A=\x91a/{V[a\x1AF\x90a/\xAAV[a\x1AO\x90a\x1C\xDFV[\x84\x86a\x1AZ\x86a/LV[\x90a\x1Ad\x91a/{V[\x90a\x1An\x91a/{V[a\x1Aw\x91a\x1C\xC3V[a\x1A\x80\x90a,ZV[\x82a\x1A\x8B\x8C\x84a/{V[\x90a\x1A\x95\x91a/{V[a\x1A\x9E\x91a/{V[a\x1A\xA7\x8Ba\x1C\x97V[a\x1A\xB0\x84a.\xF8V[a\x1A\xB9\x91a\x17\xB8V[a\x1A\xC2\x91a/\xF8V[\x95a\x1A\xCC\x91a/{V[\x90a\x1A\xD6\x90a\x1C\xA9V[a\x1A\xDF\x91a/{V[\x92a\x1A\xE9\x91a/{V[a\x1A\xF2\x90a/\xD1V[\x90a\x1A\xFC\x91a\x17\xB8V[a\x1B\x05\x90a1gV[a\x1B\x0E\x91a/{V[a\x1B\x17\x86a.\xC9V[a\x1B \x91a/\xF8V[\x90a\x1B*\x84a\x1C\xDFV[\x90a\x1B4\x91a\x1C\xC3V[\x90a\x1B>\x91a\x1C\xC3V[`\0\x13a\x1BeWa\x02\xAA\x95a\x1B`\x93a\x15,\x92`@Q\x96\x87\x95` \x87\x01a\x19\\V[a)\x90V[PPPPPP`\0\x90V[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x15a\x0EOWV[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81a\x03\xE8\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\x0EOWV[`\x01`\xFF\x1B\x81\x14a\x0EOW`\0\x03\x90V[\x93\x92\x90\x91\x92\x80Q\x91` \x82\x01Q\x90`@\x83\x01Q\x92``\x01Q\x93a\x1D\x12\x84a.\x0BV[a\x1D\x1B\x90a\x1BpV[\x94a\x1D%\x90a\x17YV[\x91\x82a\x1D0\x88a.\xC9V[a\x1D:\x89\x84a\x1C\xC3V[a\x1DC\x91a/{V[a\x1DM\x89\x84a\x1C\xC3V[a\x1DW\x83\x85a/{V[a\x1D`\x91a\x17\xB8V[a\x1Dj\x90\x8Ba/{V[a\x1Ds\x91a/\xF8V[a\x1D|\x90a0\x16V[\x95a\x1D\x86\x86a2\xFEV[a\x1D\x8F\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a\x1D\xA3\x90a,ZV[\x90a\x1D\xAD\x91a/{V[a\x1D\xB6\x90a/\xAAV[a\x1D\xBF\x90a\x1C\xDFV[\x86\x88a\x1D\xCA\x88a/LV[\x90a\x1D\xD4\x91a/{V[\x90a\x1D\xDE\x91a/{V[a\x1D\xE7\x91a\x1C\xC3V[a\x1D\xF0\x90a,ZV[\x81a\x1D\xFB\x8A\x86a/{V[\x90a\x1E\x05\x91a/{V[a\x1E\x0E\x91a/{V[\x91a\x1E\x19\x89\x82a\x1C\xC3V[\x91a\x1E#\x91a/{V[a\x1E,\x91a\x17\xB8V[a\x1E5\x91a/\xF8V[\x96a\x1E?\x91a/{V[\x90a\x1EI\x90a\x1C\xA9V[a\x1ER\x91a/{V[\x92a\x1E\\\x91a/{V[a\x1Ee\x90a/\xD1V[\x90a\x1Eo\x91a\x17\xB8V[a\x1Ex\x90a1gV[a\x1E\x81\x91a/{V[\x90a\x1E\x8B\x90a.\xC9V[a\x1E\x94\x91a/\xF8V[\x91a\x1E\x9E\x90a\x1C\xDFV[\x90a\x1E\xA8\x91a\x1C\xC3V[\x90a\x02\xAA\x91a\x1C\xC3V[\x91\x90\x91a\x1E\xF0` \x83\x01\x91a\x1E\xEAa\x1E\xE2\x84Qa\x18\xC6a\x1E\xD8`@\x89\x01\x92\x83Q\x90a+\x86V[\x96Q\x82Q\x90a+\xAFV[\x95\x85Qa'WV[\x90a'xV[g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x82\x12\x15a\x19RW`\0\x82\x13\x15a\x19GWa\x02\xAA\x94a\x19@\x93a\x1F&a\x19;\x93a\x19#a\x14\xC8\x96a+\xCEV[\x05a\x1C\xC3V[\x90\x92\x91\x85Q` \x87\x01Q`@\x88\x01Q``\x89\x01Q\x91a\x1FJ\x82a.\x0BV[a\x1FS\x90a\x1BpV[\x92a\x1F]\x90a\x17YV[\x93a\x1Fg\x86a.\xC9V[a\x1Fp\x87a\x1C\x97V[a\x1Fy\x91a/{V[a\x1F\x83\x89\x83a/{V[a\x1F\x8C\x88a\x1C\x97V[a\x1F\x95\x91a/{V[a\x1F\x9E\x90a\x1C\xDFV[\x86a\x1F\xA9\x8B\x85a/{V[a\x1F\xB2\x90a/!V[\x90a\x1F\xBC\x91a/{V[a\x1F\xC5\x91a\x1C\xC3V[a\x1F\xCE\x91a/\xF8V[a\x1F\xD7\x90a\x1C\xDFV[a\x1F\xE0\x90a0\x16V[\x92a\x1F\xEA\x83a2\xFEV[a\x1F\xF3\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a \x07\x90a,ZV[\x90a \x11\x91a/{V[a \x1A\x90a/\xAAV[a #\x90a\x1C\xDFV[\x83\x85a .\x85a/LV[\x90a 8\x91a/{V[\x90a B\x91a/{V[a K\x91a\x1C\xC3V[a T\x90a,ZV[\x85a _\x88\x8Aa/{V[\x90a i\x91a/{V[a r\x91a/{V[\x90a |\x87a\x1C\x97V[a \x85\x87a.\xF8V[a \x8E\x91a\x17\xB8V[a \x97\x91a/{V[a \xA0\x91a/\xF8V[\x93a \xAB\x87\x89a/{V[\x90a \xB5\x90a\x1C\xA9V[a \xBE\x91a/{V[\x92a \xC8\x91a/{V[a \xD1\x90a/\xD1V[\x90a \xDB\x91a\x17\xB8V[a \xE4\x90a1gV[a \xED\x91a/{V[a \xF6\x83a.\xC9V[a \xFF\x91a/\xF8V[\x90a!\t\x90a\x1C\xA9V[\x90a!\x13\x91a\x1C\xC3V[`\0\x13a\x1BeWa\x02\xAA\x95a!5\x93a\x15,\x92`@Q\x96\x87\x95` \x87\x01a\x19\\V[a*\xAFV[\x91a\x14\xC3a\x14\xC8\x91a!K\x93a2\x87V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x03\x90\x81\x11a\x0EOWa\x02\xAA\x91a(\xE5V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a\"\x8AW[\x85\x85\x12a\"kW\x90a\x15,a!\x99\x92`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa!\xAF\x81\x85a6\xE3V[\x92a!\xBA\x81\x86a6\xE3V[\x88a!\xC5\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a!\xD9\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a!\xF3WPPPPPPPPPP\x90V[\x15a\"NW[P\x86\x97\x98P\x81\x92a\"\ra\x15\xAF\x8B\x89a\x0ETV[\x99a\"\x18\x8B\x88a6\xE3V[\x90\x84a\"$\x88\x84a\x18EV[\x13a\"BWPP\x89\x93[\x88a\"9\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a!\xE2V[\x8B\x98P\x90\x95P\x93a\".V[`\x14\x10\x80a\"bW[\x15a\x16\nW\x88a!\xF9V[P\x80\x83\x10a\"WV[\x93P\x91a\"w\x90a)\x11V[\x91a\"\x84\x84\x83\x83\x86a'\xECV[\x93a!xV[\x85\x85\x13a\"\x9EW\x90a\x15,a!\x99\x92a\x15\x1AV[\x93P\x94a\"\xAA\x90a'8V[\x94a\"\xB7\x84\x83\x83\x89a'\xECV[\x93a\"\x8AV[\x92\x91\x90a\"\xD3a\"\xCD\x82\x84a);V[\x85a(\xE5V[\x93\x81\x03\x90\x81\x11a\x0EOW\x92\x81\x03\x90\x81\x11a\x0EOW\x90V[\x92\x91\x90a\"\xFAa\"\xCD\x82\x84a);V[\x93\x81\x01\x80\x91\x11a\x0EOW\x92\x81\x01\x80\x91\x11a\x0EOW\x90V[\x93\x90\x92\x91\x81Q` \x83\x01Q\x91`@\x84\x01Q\x93``\x01Q\x94a#1\x85a.\x0BV[a#:\x90a\x1BpV[\x95a#D\x90a\x17YV[\x92\x83a#O\x89a.\xC9V[a#Y\x8A\x85a\x1C\xC3V[a#b\x91a/{V[a#l\x85\x84a/{V[a#v\x8B\x86a\x1C\xC3V[a#\x7F\x91a/{V[a#\x88\x90a\x1C\xDFV[\x82\x85a#\x94\x88\x87a/{V[\x90a#\x9E\x91a/{V[\x90a#\xA8\x91a/{V[a#\xB1\x91a\x1C\xC3V[a#\xBA\x91a/\xF8V[a#\xC3\x90a\x1C\xDFV[a#\xCC\x90a0\x16V[\x96a#\xD6\x87a2\xFEV[a#\xDF\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a#\xF3\x90a,ZV[\x90a#\xFD\x91a/{V[a$\x06\x90a/\xAAV[a$\x0F\x90a\x1C\xDFV[\x87\x89a$\x1A\x89a/LV[\x90a$$\x91a/{V[\x90a$.\x91a/{V[a$7\x91a\x1C\xC3V[a$@\x90a,ZV[\x81a$K\x8B\x8Da/{V[\x90a$U\x91a/{V[a$^\x91a/{V[\x92a$i\x8A\x82a\x1C\xC3V[\x91a$s\x91a/{V[a$|\x91a\x17\xB8V[a$\x85\x91a/{V[a$\x8E\x91a/\xF8V[\x96a$\x98\x91a/{V[\x90a$\xA2\x90a\x1C\xA9V[a$\xAB\x91a/{V[\x92a$\xB5\x91a/{V[a$\xBE\x90a/\xD1V[\x90a$\xC8\x91a\x17\xB8V[a$\xD1\x90a1gV[a$\xDA\x91a/{V[\x90a$\xE4\x90a.\xC9V[a$\xED\x91a/\xF8V[\x90a\x1E\xA8\x90a\x1C\xA9V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a&\x1AW[\x85\x85\x12a%\xFBW\x90a\x15,a%)\x92`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa%?\x81\x85a7\x05V[\x92a%J\x81\x86a7\x05V[\x88a%U\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a%i\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a%\x83WPPPPPPPPPP\x90V[\x15a%\xDEW[P\x86\x97\x98P\x81\x92a%\x9Da\x15\xAF\x8B\x89a\x0ETV[\x99a%\xA8\x8B\x88a7\x05V[\x90\x84a%\xB4\x88\x84a\x18EV[\x13a%\xD2WPP\x89\x93[\x88a%\xC9\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a%rV[\x8B\x98P\x90\x95P\x93a%\xBEV[`\x14\x10\x80a%\xF2W[\x15a\x16\nW\x88a%\x89V[P\x80\x83\x10a%\xE7V[\x93P\x94a&\x07\x90a'8V[\x94a&\x14\x84\x87\x84\x84a'\xECV[\x93a%\x08V[\x85\x85\x13a&.W\x90a\x15,a%)\x92a\x15\x1AV[\x93P\x91a&:\x90a)\x11V[\x91a&G\x84\x84\x84\x84a'\xECV[\x93a&\x1AV[a&\xBDa&\xB8a\x02\xAA\x93a&\xB2a&\xAD\x82Qa&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\x97a&\x92`@` \x8B\x01Q\x9A\x01Q\x96a&\x8C\x88\x8Ca+\x86V[\x9Da);V[a2\xFEV[\x97a2\xFEV[a\x17\xEEV[\x05a,ZV[a'WV[a'\x9AV[\x90a\x17\xB8V[a\x17\xD1V[a\x18hV[a&\xF1a&\xB8a&\xECg\x13\xA0K\xBD\xFD\xC9\xBE\x88a&\xE6g\x1B\xC1mgN\xC8\0\0\x95a\x17\xD1V[\x05a\x1C\xDFV[a1gV[\x05\x90V[`\0\x81\x12a'\0W\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x10`$\x82\x01RotoUint: negative`\x80\x1B`D\x82\x01R`d\x90\xFD[a\x03\xE7\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wa\x03\xE8\x90\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04?W\x04\x90V[g\x06\xF0[Y\xD3\xB2\0\0\x90\x80\x82\x02\x91\x82\x04\x14`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x04\x90V[\x90\x92\x82\x82\x10\x15a(\xA0Wa\x02\xAA\x93a(i\x92\x84g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82a(\x14\x83\x83a'xV[\x10a(\x8DWP`\x01`\x01`\xFF\x1B\x03\x95\x90P[\x83Q\x91a(WPP\x89\x92[\x87a*4\x88\x86a\x0E\xC8V[\x92\x01\x93\x99\x98a)\xDCV[\x8B\x97P\x90\x94P\x92a*)V[\x86\x10\x80a*dW[\x15a*]W\x88a)\xF3V[\x80\x80a)\xE1V[Pa\x01\0\x82\x10a*RV[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81Ra\x03\xE8`\x04\x82\x01R`$\x81\x01\x85\x90R`D\x90\xFD[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a*\x8EWa*\xCB\x81a8\x86V[a*\xD5\x85\x83a9\xF6V[`\0a*\xE1\x82\x84a\x18EV[\x13a*oWPa*\xF2\x85\x96\x95a\x0E\xB8V[`\x01\x94`\0\x91\x86\x80[a+\x0BWPPPPPPPP\x90PV[\x15a+hW[P\x85\x96\x97\x98P\x80\x91a+&a\x15\xAF\x8B\x88a\x0ETV[\x99a+1\x8B\x87a9\xF6V[\x90\x83a+=\x87\x84a\x18EV[\x13a+\\WPP\x89\x92[\x87a+R\x88\x86a\x0E\xC8V[\x92\x01\x93\x99\x98a*\xFBV[\x8B\x97P\x90\x94P\x92a+GV[\x86\x10\x80a+{W[\x15a*]W\x88a+\x11V[Pa\x01\0\x82\x10a+pV[\x90a+\x90\x90a.\x0BV[c;\x9A\xCA\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x15a\x0EOWa\x02\xAA\x91a'WV[a\x02\xAA\x91a&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\xAD\x95a2\xFEV[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a,TWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x12\x15a,BW\x80\x15a,0W\x80`\x01\x1B\x90\x81\x05`\x02\x03a\x0EOWa,\x0C\x90a0\x16V[\x90g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x91\x80\x83\x02\x92\x83\x05\x14`\x01\x16\x15a\x04?Wa\x02\xAA\x91\x05a\x1C\xDFV[`@Qc\"\xEDY\x85`\xE2\x1B\x81R`\x04\x90\xFD[`@Qc\x07\xA0!'`\xE0\x1B\x81R`\x04\x90\xFD[P`\0\x90V[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a,TWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a-\xAAWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[\x91\x90a\x01 \x83\x82\x03\x12a\x03\0W\x82Q\x92` \x81\x01Q\x92a\x02\xAA`@\x83\x01Q\x93`\x80``\x85\x01Q\x94\x01a\x11\xC8V[`\xB5\x81`\x01`\x88\x1B\x81\x10\x15a.\xB2W[\x80i\x01\0\0\0\0\0\0\0\0\0b\x01\0\0\x92\x10\x15a.\xA5W[e\x01\0\0\0\0\0\x81\x10\x15a.\x98W[c\x01\0\0\0\x81\x10\x15a.\x8BW[\x01\x02`\x12\x1C`\x01\x90\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x90\x1C\x80\x80\x92\x04\x10\x90\x03\x90V[`\x10\x1C\x91`\x08\x1B\x91a.OV[` \x1C\x91`\x10\x1B\x91a.BV[`@\x1C\x91` \x1B\x91a.3V[Ph\xB5\0\0\0\0\0\0\0\0\x90P`\x80\x82\x90\x1Ca.\x1BV[g\x1B\xC1mgN\xC8\0\0\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x03\xE8\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x03\xE8\x80\x82\x02\x91`\x01`\0\x19\x82\x10\x17\x91\x81\x84\x05\x14\x90\x15\x17\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x13\xA0K\xBD\xE7\x8C\xC4\0\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x15\x82\x84\x05\x82\x14\x17`\0\x19\x90\x92\x10`\x01`\xFF\x1B\x90\x91\x13\x17\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\x13\xA0K\xBD\xE7\x8C\xC4\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14\x82\x15\x15\x16\x15a\x04?W\x05\x90V[`\0\x81\x12\x80\x15a1VW[a1DW\x80\x15a,BWg\x1B\xC1mgN\xC8\0\0\x81\x14a,0Wg\r\xE0\xB6\xB3\xA7d\0\0\x81\x12\x90\x81\x15a15W\x90[a0W\x82a4\xCCV[\x80\x15a,BWa0\xC0a0\x84a0\x7Fa0za0ua0\xC5\x95a2\xFEV[a5\x8DV[a.\x0BV[a\x18\x0BV[a\x196a0\x98a0\x93\x83a4\xF7V[a\x1B\x89V[a0\xBAa0\xB5a0\xAFa0\xAA\x86a5\"V[a\x1B\xA1V[\x85a6\x04V[a\x1B\xB9V[\x90a5kV[a5\xB5V[\x91`\0\x90[`\x02\x82\x10a0\xE5WPP\x15a0\xDCW\x90V[a\x02\xAA\x90a\x1C\xDFV[\x90\x92a1-\x81a1'a0\xFD\x85a\x196`\x01\x96a1gV[a0\xBAa1\x1Da1\x18a\x19;a1\x13\x87\x80a6\x04V[a\x1C\xDFV[a5\xDDV[a&\xB2\x83\x86a6\x04V[\x90a\x1C\xC3V[\x93\x01\x90a0\xCAV[a1>\x90a\x17|V[\x90a0NV[`@Qc-\x04\x83\xC5`\xE2\x1B\x81R`\x04\x90\xFD[Pg\x1B\xC1mgN\xC8\0\0\x81\x13a0!V[\x80\x15a2zWgV\x98\xEE\xF0fp\0\0\x81\x12\x15a,TWgV\x98\xEE\xF0fo\xFF\xFF\x19\x81\x13\x15a2mW`\0a2]a1\x9C\x83a4\x9FV[a2%a\x19;a1\xB6a1\xB1a0\xB5\x85a'\xC1V[a5LV[\x92a(ia2Xa2Sa2La2Fa2Aa2;a26a20a2+\x8Da2%a2 a2\x1Aa2\x15a0\xAFa2\x10a2\na2\x05a1\xFFa1\xFA\x8Aa6%V[a\x1B\xD1V[\x89a6\x04V[a\x1B\xEBV[\x87a6\x04V[a\x1C\x03V[a\x1C\x1DV[\x83a6\x04V[a\x1C5V[\x90a6\x04V[a\x1COV[\x8Ca6\x04V[a\x1CgV[\x8Aa6\x04V[a\x1C\x7FV[\x88a6\x04V[\x93\x80a6\x04V[a\x18$V[a\x17\x9FV[\x91\x12\x15a\x02\xAAWa\x02\xAA\x90a\x17|V[Pg\x1B\xC1mgN\xC8\0\0\x90V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x90V[a&\xBDa&\xB8a\x02\xAA\x93a1'a&\xAD\x82Qa&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\x97a&\x92`@` \x8B\x01Q\x9A\x01Q\x96a&\x8C\x88\x8Ca+\x86V[\x15a2\xCDWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x90a3*`\0\x82\x13a2\xC6V[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a3F\x82a6PV[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1D\x90V[`\x01`\xFF\x1B\x81\x14a4\xBAW`\0\x81\x12\x15a\x02\xAAW\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x04?Wn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04?W\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a6[\x81\x15\x15a2\xC6V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x90a6\xD9a\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x91\x92\x90Pa'\xECV[\x90a6\xFAa\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x90P\x91\x90\x91a'\xECV[\x90a7\x1Ca\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x92\x90Pa'\xECV[\x80Q\x81\x01` \x01\x90` \x01\x90a7:\x91a-\xDEV[\x80\x91\x93\x92PQ\x90` \x81\x01Q`@\x82\x01Q\x91``\x01Q\x92a7Z\x83a.\x0BV[a7c\x90a\x1BpV[\x93a7m\x90a\x17YV[\x90a7w\x86a.\xC9V[a7\x80\x87a\x1C\x97V[a7\x89\x91a/{V[a7\x92\x87a\x1C\x97V[a7\x9B\x84a.\xF8V[a7\xA4\x91a\x17\xB8V[a7\xAE\x90\x89a/{V[a7\xB7\x91a/\xF8V[a7\xC0\x90a0\x16V[\x93a7\xCA\x84a2\xFEV[a7\xD3\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a7\xE7\x90a,ZV[\x90a7\xF1\x91a/{V[a7\xFA\x90a/\xAAV[a8\x03\x90a\x1C\xDFV[\x84\x86a8\x0E\x86a/LV[\x90a8\x18\x91a/{V[\x90a8\"\x91a/{V[a8+\x91a\x1C\xC3V[a84\x90a,ZV[\x82a8?\x88\x84a/{V[\x90a8I\x91a/{V[a8R\x91a/{V[a8[\x87a\x1C\x97V[a\x1E#\x84a.\xF8V[\x90a8{a\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a-\xDEV[\x94\x93\x90\x92\x91Pa\x1C\xF0V[\x80Q\x81\x01` \x01\x90` \x01\x90a8\x9B\x91a-\xDEV[\x80\x91\x92\x93PQ` \x82\x01Q\x90`@\x83\x01Q\x92``\x01Q\x93a8\xBB\x84a.\x0BV[a8\xC4\x90a\x1BpV[\x94a8\xCE\x90a\x17YV[\x91a8\xD8\x87a.\xC9V[a8\xE1\x88a\x1C\x97V[a8\xEA\x91a/{V[a8\xF4\x83\x83a/{V[a8\xFD\x89a\x1C\x97V[a9\x06\x91a/{V[a9\x0F\x90a\x1C\xDFV[\x84a9\x1A\x85\x85a/{V[a9#\x90a/!V[\x90a9-\x91a/{V[a96\x91a\x1C\xC3V[a9?\x91a/\xF8V[a9H\x90a\x1C\xDFV[a9Q\x90a0\x16V[\x94a9[\x85a2\xFEV[a9d\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a9x\x90a,ZV[\x90a9\x82\x91a/{V[a9\x8B\x90a/\xAAV[a9\x94\x90a\x1C\xDFV[\x85\x87a9\x9F\x87a/LV[\x90a9\xA9\x91a/{V[\x90a9\xB3\x91a/{V[a9\xBC\x91a\x1C\xC3V[a9\xC5\x90a,ZV[\x83a9\xD0\x89\x8Ba/{V[\x90a9\xDA\x91a/{V[a9\xE3\x91a/{V[\x90a9\xED\x88a\x1C\x97V[a$s\x85a.\xF8V[\x90a:\ra\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a-\xDEV[\x94\x93\x90\x92Pa#\x11V\xFE\xA2dipfsX\"\x12 \x9F\xC8\xD6(\xD4d\x1Cp\x07\xB3\x1E\x8A\x8C\x8A\xD0\x8B9])g\xF2\x8B\xA9\x9CtUk\x08\r\x995mdsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\xE6W`@Q`\x1Fa\x1FT8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xD0W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0\x80WQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x90\x81\x90\x03a\0{W`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x90\x91\x17\x90U`@Qa\x1E \x90\x81a\x014\x829\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0B\xF7W`\x005`\xE0\x1C\x80b.RK\x14a\0\x8BW\x80c\x1E\xDBq\xE5\x14a\0\x86W\x80ch\xBD>8\x14a\0\x81W\x80cs\xCB-\x03\x14a\0|W\x80c\x8A\x04\xBD\xD5\x14a\0wW\x80c\xAC\xAD)\x89\x14a\0rW\x80c\xAF\xBA\x13\xC4\x14a\0mWc\xDC\x17\x83U\x03a\x0B\xF7Wa\x0B\x8FV[a\x0BfV[a\t\xBFV[a\t\x85V[a\x08\x1FV[a\x04\xCCV[a\x03\xC7V[4a\x01\x07W`@6`\x03\x19\x01\x12a\x01\x02W`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\0\xF5a\0\xD2a\0\xC4` \x936\x90`\x04\x01a\x03aV[\x83\x80\x82Q\x83\x01\x01\x91\x01a\x0CZV[\x90a\0\xEFa\0\xE1`\x045a\x0EyV[\x86\x80\x82Q\x83\x01\x01\x91\x01a\x0C\xC6V[\x92a\x10tV[`@Q\x90\x81R\xF3[a\x01\xA7V[a\x01WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\xA0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[a\x02PV[`\xC0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x92\x91\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x02\x82W`@Q\x91a\x02\xEF`\x1F\x82\x01`\x1F\x19\x16` \x01\x84a\x02\xA3V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x03\x0CW\x82\x81` \x93\x84`\0\x96\x017\x01\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x80`\x1F\x83\x01\x12\x15a\x03\x7FW\x81` a\x03|\x935\x91\x01a\x02\xC5V[\x90V[a\x01\xF7V[\x90`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@R```\x03\x82\x94\x80T\x84R`\x01\x81\x01T` \x85\x01R`\x02\x81\x01T`@\x85\x01R\x01T\x91\x01RV[4a\x04\xB1W` 6`\x03\x19\x01\x12a\x01\x02W`\x045`\0R`\x01` Ra\x01\xC0`@`\0 a\x03\xF4\x81a\x03\x84V[\x90a\x04\x01`\x04\x82\x01a\x03\x84V[\x90a\x04\xA3a\x04\x11`\x08\x83\x01a\x03\x84V[a\x04y`\x0C\x84\x01T\x93`\r`\x01\x80`\xA0\x1B\x03\x91\x01T\x16\x94a\x04S`@Q\x80\x98``\x80\x91\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R\x01Q\x91\x01RV[\x80Q`\x80\x88\x01R` \x81\x01Q`\xA0\x88\x01R`@\x81\x01Q`\xC0\x88\x01R``\x01Q`\xE0\x87\x01RV[\x80Qa\x01\0\x86\x01R` \x81\x01Qa\x01 \x86\x01R`@\x81\x01Qa\x01@\x86\x01R``\x01Qa\x01`\x85\x01RV[a\x01\x80\x83\x01Ra\x01\xA0\x82\x01R\xF3[a\x01\x07V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04\xC7WV[`\0\x80\xFD[4a\x04\xB1W``\x80`\x03\x196\x01\x12a\x01\x02Wa\x04\xE9`\x045a\x04\xB6V[`$5\x90`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\x05\r\x906\x90`\x04\x01a\x03aV[\x90a\x05)a\x05\x1A\x84a\x0EyV[` \x80\x82Q\x83\x01\x01\x91\x01a\x0C\xC6V[`\0T\x90\x92\x90a\x05O\x90a\x05C\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07\rW`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x95\x90\x95R\x82\x90\x85\x90`$\x90\x82\x90Z\xFA\x80\x15a\x07\x08W`\0\x91\x82\x95\x83\x92a\x06\xCDW[P\x80` \x80a\x05\x9C\x93Q\x83\x01\x01\x91\x01a\x0CZV[\x93\x91\x94\x90\x96\x82\x86\x11`\0\x14a\x06@WP\x91a\x05\xDD\x82a\x05\xD8\x83a\x05\xD3a\x05\xEE\x97a\x05\xC9a\x05\xE5\x98\x8Ca\r\x8AV[\x90\x8C\x01Q\x90a\x15\x9BV[a\x15\x9BV[a\x15\xC7V[P[\x83a\r\xE5V[\x93\x82\x86\x85a\x10tV[\x93\x84`\x13\x19\x12\x92\x83a\x065W[a\x061\x93\x94`@Q\x96\x87\x96\x87\x92`\xA0\x94\x91\x97\x96\x95\x92`\xC0\x85\x01\x98\x15\x15\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x01RV[\x03\x90\xF3[`\x14\x86\x12\x93Pa\x05\xFBV[\x90\x92\x90\x91P\x81\x87\x11\x15a\x06oWa\x06i\x82a\x05\xD8\x83a\x05\xD3a\x05\xEE\x97a\x05\xC9a\x05\xE5\x98\x8Ea\r\x8AV[Pa\x05\xDFV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7Finvalid swap: inputs x and y hav`D\x82\x01Roe the same sign!`\x80\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x95Pa\x05\x9C\x92Pa\x06\xF5\x91P\x83=\x85\x11a\x07\x01W[a\x06\xED\x81\x83a\x02\xA3V[\x81\x01\x90a\x0CZV[\x95\x91\x92\x90\x95\x91\x90a\x05\x88V[P=a\x06\xE3V[a\rhV[a\r\x15V[\x90```\x03\x19\x83\x01\x12a\x01\x02W`\x045a\x07+\x81a\x04\xB6V[\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\0\xFDW\x80`#\x83\x01\x12\x15a\x03\x7FW\x81`\x04\x015\x93\x84\x11a\x07\xC6W`$\x84\x83\x01\x01\x11a\x07mW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[4a\x04\xB1Wa\x08-6a\x07\x12V[`\0T\x92\x93P\x91`\x01`\x01`\xA0\x1B\x03\x163\x03a\tsWa\t1a\t)a\x05\x1Aa\t$\x95a\x08k`\x80\x95a\x08\xEE\x97a\x08ba\x0ENV[P\x81\x01\x90a\x11sV[` \x81\x9B\x94\x9A\x93\x99\x92\x9B\x01Qa\x08\x8B\x86`\0R`\x01` R`@`\0 \x90V[U`@\x81\x01Q`\x04a\x08\xA7\x87`\0R`\x01` R`@`\0 \x90V[\x01U\x80Q`\x08a\x08\xC1\x87`\0R`\x01` R`@`\0 \x90V[\x01U``\x81\x01Q`\x0Ca\x08\xDE\x87`\0R`\x01` R`@`\0 \x90V[\x01U\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\ra\t\x04\x84`\0R`\x01` R`@`\0 \x90V[\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90UV[a\x0EyV[\x84\x83\x85a\x10tV[\x92\x83`\x13\x19\x12\x91\x82a\thW[`@\x80Q\x93\x15\x15\x84R` \x84\x01\x95\x90\x95R\x93\x82\x01\x92\x90\x92R``\x81\x01\x92\x90\x92R`\x80\x82\x01R`\xA0\x90\xF3[`\x14\x85\x12\x92Pa\t>V[`@QchS\xCB\xA7`\xE0\x1B\x81R`\x04\x90\xFD[4a\x04\xB1W``a\t\x956a\x07\x12V[\x81\x80\x94P\x94\x92\x94\x01\x03\x12a\x01\x02W\x805\x90a\t1a\t)a\x05\x1A`@` \x85\x015\x94\x015\x95a\x0EyV[4a\x04\xB1Wa\t\xCD6a\x07\x12V[`\0T\x90\x93\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x163\x03a\tsWa\n\x0Ea\x05C`\ra\n\0\x87`\0R`\x01` R`@`\0 \x90V[\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x91\x16\x03a\x0BTWa\n!\x83\x82\x01\x82a\x0E\x19V[a\n*\x81a\x0E.V[`\x01\x81\x03a\ncWPa\nMa\nHa\n^\x92`\x0C\x94\x956\x91a\x02\xC5V[a\x12\xAFV[\x92`\0R`\x01` R`@`\0 \x90V[\x01U[\0[a\nl\x81a\x0E.V[`\x03\x81\x03a\n\xA8WP\x90a\n\x90a\n\x8Ba\n\xA3\x93a\na\x956\x91a\x02\xC5V[a\x12\x05V[\x92\x90\x91`\0R`\x01` R`@`\0 \x90V[a\x12-V[a\n\xB1\x81a\x0E.V[`\x04\x81\x03a\n\xEBWP\x90`\x04a\n\xD2a\n\x8Ba\n\xE5\x94a\na\x966\x91a\x02\xC5V[\x93\x90\x92`\0R`\x01` R`@`\0 \x90V[\x01a\x12-V[a\n\xF4\x81a\x0E.V[`\x02\x81\x03a\x0B\x15WP\x90`\x08a\n\xD2a\n\x8Ba\n\xE5\x94a\na\x966\x91a\x02\xC5V[\x80a\x0B!`\x05\x92a\x0E.V[\x03a\x0BBWa\t\x04a\nMa\x0B=`\r\x93a\na\x966\x91a\x02\xC5V[a\x11\xDDV[`@Qc#]+=`\xE0\x1B\x81R`\x04\x90\xFD[`@Qcn\xDA\xEF/`\xE1\x1B\x81R`\x04\x90\xFD[4a\x04\xB1W`\x006`\x03\x19\x01\x12a\x01\x02W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x04\xB1W` \x80`\x03\x196\x01\x12a\x01\x02Wa\x0B\xAC`\x045a\x0EyV[\x90`@\x80Q\x91` \x83R\x83Q\x91\x82` \x85\x01R`\0[\x83\x81\x10a\x0B\xE4W\x84`@\x81\x86`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x81\x01\x03\x01\x90\xF3[\x85\x81\x01\x83\x01Q\x85\x82\x01\x83\x01R\x82\x01a\x0B\xC2V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81``\x91\x03\x12a\x01\x02W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81`\xA0\x91\x03\x12a\x01\x02W`\x80`@Q\x91a\x0C\xE0\x83a\x02fV[\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R``\x81\x01Q``\x84\x01R\x01Qa\r\r\x81a\x04\xB6V[`\x80\x82\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[`@Q=`\0\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x91\x90\x82\x03\x91\x82\x11a\r\x97WV[a\rtV[\x91\x90\x82\x01\x80\x92\x11a\r\x97WV[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\r\x97WV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\r\x97WV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\r\x97WV[`\x01`\xFF\x1B\x81\x14a\r\x97W`\0\x03\x90V[`\x06\x11\x15a\x04\xC7WV[\x90\x81` \x91\x03\x12a\x01\x02W5a\x03|\x81a\x0E\x0FV[`\x06\x11\x15a\x0E8WV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@Q\x90a\x0E[\x82a\x02fV[`\0`\x80\x83\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x01RV[a\x0E\x81a\x0ENV[\x81`\0R`\x01` Ra\x0E\x9Fa\x0E\x9A`@`\0 a\x03\x84V[a\x12\xE4V[\x91` \x82\x01\x92\x83R\x80`\0R`\x01` Ra\x0E\xC3a\x0E\x9A`\x08`@`\0 \x01a\x03\x84V[\x82R`\x0Ca\x0F\x04a\x0E\xECa\x0E\x9A`\x04a\x0E\xE6\x86`\0R`\x01` R`@`\0 \x90V[\x01a\x03\x84V[\x92`@\x85\x01\x93\x84R`\0R`\x01` R`@`\0 \x90V[\x01T\x90``\x83\x01\x91\x82R`@Q\x93\x83Q` \x86\x01RQ`@\x85\x01RQ``\x84\x01RQ`\x80\x83\x01R`\x80`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16`\xA0\x82\x01R`\xA0\x81Ra\x03|\x81a\x02\x87V[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\r\x97WV[\x90\x92\x82\x82\x10\x15a\x11.Wa\x03|\x93a\x10\xF1\x92\x84g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82a\x10\x9C\x83\x83a\x15\xF7V[\x10a\x11\x1BWP`\x01`\x01`\xFF\x1B\x03\x95\x90P[\x83Q\x91a\x10\xC4a\x10\xBE\x83\x85a\x16\x19V[\x85a\x15\xF7V[\x10a\x10\xF6WP`\x01`\x01`\xFF\x1B\x03\x92a\x10\xEB\x92P\x90P[`@` \x82\x01Q\x91\x01Q\x90a\x15rV[\x92a\x10XV[a\x10XV[a\x10\xEB\x92a\x11\na\x11\x10\x92a\x11\x15\x94a\x16\x19V[\x90a\x15\xF7V[a\x13\x9FV[\x91a\x10\xDBV[a\x11(\x91a\x11\x10\x91a\x15\xF7V[\x94a\x10\xAEV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1A`$\x82\x01R\x7FtradingFunction: invalid x\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x80\x91\x03a\x01\0\x81\x12a\x01\x02W\x815\x92` \x83\x015\x92`\xA0`@\x82\x015\x93`_\x19\x01\x12a\x11\xD8W`\xE0`@Q\x91a\x11\xA8\x83a\x02fV[``\x81\x015\x83R`\x80\x81\x015` \x84\x01R`\xA0\x81\x015`@\x84\x01R`\xC0\x81\x015``\x84\x01R\x015a\r\r\x81a\x04\xB6V[a\x0CuV[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x11\xFA` `@\x93\x01Qa\x0E\x0FV[\x01Qa\x05C\x81a\x04\xB6V[``\x81\x80Q\x81\x01\x03\x12a\x01\x02Wa\x12\x1F` \x82\x01Qa\x0E\x0FV[```@\x82\x01Q\x91\x01Q\x90\x91V[\x91\x90B\x82\x11\x15a\x12\x9DWa\x12Ca\x0E\x9A\x84a\x03\x84V[\x90\x81\x84UB`\x03\x85\x01UB\x83\x03\x91\x83\x83\x11a\r\x97Wa\x12a\x91a\r\xE5V[B\x83\x14a\x12\x87W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\r\x97W`\x02\x92`\x01\x85\x01U\x05\x91\x01UV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`@Qcf\xF1\x02\xED`\xE1\x1B\x81R`\x04\x90\xFD[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x12\xCC` `@\x93\x01Qa\x0E\x0FV[\x01Q\x90V[\x81\x81\x02\x92\x91\x81\x15\x91\x84\x04\x14\x17\x15a\r\x97WV[``\x81\x01Q` \x82\x01Q\x80\x82\x14a\x13_W\x80B\x11`\0\x14a\x13WW\x90[\x81\x03\x90\x81\x11a\r\x97W`@\x82\x01\x90\x81Q`\0\x81\x13`\0\x14a\x134WPa\x13.\x90a\x03|\x93Q\x92Q\x90a\x12\xD1V[\x90a\r\x9CV[\x92a\x13K\x92Pa\x13E\x90Q\x93a\r\xFEV[\x90a\x12\xD1V[\x81\x03\x90\x81\x11a\r\x97W\x90V[PB\x90a\x13\x01V[PPQ\x90V[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\r\x97WV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\r\x97W`\0\x19\x83\x05\x03a\r\x97WV[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a\x15lWg\r\xE0\xB6\xB3\xA7d\0\0\x80\x82\x12\x15a\x15\x16W\x81\x15a\x157W`\x01\x82`\x01\x1B\x91`\x02\x93\x83\x05`\x02\x03a\r\x97W`\0\x83\x12\x80\x15a\x15[W[a\x15IW\x82\x15a\x15\x16Wg\x1B\xC1mgN\xC8\0\0\x83\x14a\x157W\x82\x12\x91\x82\x15a\x15(W\x92[a\x14\x10\x84a\x1B\xC7V[\x80\x15a\x15\x16Wa\x14\x82a\x14Aa\x14\x19\x81\x13\x15a\x15lWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x1BlWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x04\xC7Wn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\xC7W\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x1DV\x81\x15\x15a\x17#V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[`\x01`\xFF\x1B\x81\x14a\x1D\xD8W`\0\x81\x12\x15a\x03|W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD\xFE\xA2dipfsX\"\x12 \xEC6\x0C\xDB\x88T\xB6\x16\x94\x9BZ\xE2\x06 i\xDF$I\xE5\xEF\xA1\xB1\xA1\xF0\x1F\xFAP\xF0\x94\x9B\x80\x85dsolcC\0\x08\x16\x003`\x80`@\x90\x80\x82R4a\x01\x06WP\x80Q`\x1Fa\x07\xA18\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xF0W\x80\x84\x92``\x94\x87R\x839\x81\x01\x03\x12a\0\xA1Wa\0O\x81a\x01SV[\x90\x82a\0]` \x83\x01a\x01SV[\x91\x01Q\x91`\x01\x80`\xA0\x1B\x03\x19\x913\x83`\0T\x16\x17`\0U`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x83`\x01T\x16\x17`\x01U\x16\x90`\x02T\x16\x17`\x02U`\x03UQa\x064\x90\x81a\x01m\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x01gWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003\xA2dipfsX\"\x12 s\xDD\xA1p\xEEe\xA2\rO'fK\x10q\x1E\xC9\xF3\x0CAll\x11\xCBto\xDE\x19\x8FG\xD2\xA0idsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static LOGNORMALSETUP_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10b\0\x14\x9EW`\x005`\xE0\x1C\x80c\n\x92T\xE4\x14b\0\x01\x1AW\x80c\x1E\xD7\x83\x1C\x14b\0\x01\x14W\x80c*\xDE8\x80\x14b\0\x01\x0EW\x80c>^<#\x14b\0\x01\x08W\x80c?r\x86\xF4\x14b\0\x01\x02W\x80cb\n&\x07\x14b\0\0\xFCW\x80cf\xD9\xA9\xA0\x14b\0\0\xF6W\x80c\x85\"l\x81\x14b\0\0\xF0W\x80c\x91j\x17\xC6\x14b\0\0\xEAW\x80c\xB5P\x8A\xA9\x14b\0\0\xE4W\x80c\xBAAO\xA6\x14b\0\0\xDEW\x80c\xE0\xD7\xD0\xE9\x14b\0\0\xD8W\x80c\xE2\x0C\x9Fq\x14b\0\0\xD2W\x80c\xE2\x14\x85\xAD\x14b\0\0\xCCWc\xFAv&\xD4\x03b\0\x14\x9EWb\0\x14yV[b\0\x13\xB8V[b\0\x13-V[b\0\x13\rV[b\0\x12\xE4V[b\0\x11\x98V[b\0\x10)V[b\0\x0E\xC9V[b\0\x0B=V[b\0\n[V[b\0\t\xD0V[b\0\tEV[b\0\x08\x8BV[b\0\x06\xD7V[b\0\x01\xD2V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x91\x03\x12b\0\x01\xCCWV[b\0\x01pV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCWb\0\x01\xF0b\0\x19\x8BV[`@\x80Q\x90a\x13\x01\x80\x83\x01\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x80\x83\x10\x85\x84\x11\x17b\0\x06OW\x80b\0\x02&b\0\x1D \x94\x84\x86\x849b\0\x15\x86V[\x03\x90\x86\xF0\x80\x15b\0\x06!W`\x1E\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x82Q\x91\x81\x83\x01\x83\x81\x10\x86\x82\x11\x17b\0\x06OW\x83\x92b\0\x02q\x92\x849b\0\x15\xD2V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1F\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x02\xAE\x91\x16[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15b\0\x06'W\x81Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0`$\x83\x01R\x91\x85\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06sW[P`\x1FTb\0\x03\x0B\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x81;\x15b\0\x06'W\x82Q\x90\x81R0`\x04\x82\x01Rh\x05k\xC7^-c\x10\0\0`$\x82\x01R\x90\x84\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06UW[P`\x1ETb\0\x03a\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1FTb\0\x03x\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x82Q\x91a\x07\xA1\x90\x81\x84\x01\x92\x84\x84\x10\x87\x85\x11\x17b\0\x06OW\x84\x93b\0\x03\xC5\x93b\0\xBB%\x869`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R``\x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1D\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x80Qa0)\x80\x82\x01\x82\x81\x10\x85\x82\x11\x17b\0\x06OW\x82\x91b\x000!\x839\x03\x90\x84\xF0\x80\x15b\0\x06!W`\x1C\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x82\x17\x90Ub\0\x04@\x90b\0\x02\xA2V[\x81Q\x90a\x1FT\x80\x83\x01\x91\x83\x83\x10\x86\x84\x11\x17b\0\x06OW\x83\x92b\0\x04v\x92b\0\x9B\xD1\x859`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W` \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x82\x17\x81U\x92\x90b\0\x04\xAD\x90b\0\x02\xA2V[\x82Q\x91a;\x87\x80\x84\x01\x92\x90\x91\x83\x11\x84\x84\x10\x17b\0\x06OW\x83\x92b\0\x04\xE4\x92b\0`J\x859`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01\x90V[\x03\x90\x84\xF0\x80\x15b\0\x06!W`!\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x05\x1A\x91\x16b\0\x02\xA2V[`\x1CT\x90\x91\x90b\0\x054\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x91\x80;\x15b\0\x06'W\x81Qc\t^\xA7\xB3`\xE0\x1B\x80\x82R`\x01`\x01`\xA0\x1B\x03\x94\x90\x94\x16`\x04\x82\x01R`\0\x19`$\x82\x01R\x90\x84\x90\x82\x90`D\x90\x82\x90\x89\x90Z\xF1\x80\x15b\0\x06!Wb\0\x06-W[P`\x1FTb\0\x05\x96\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1CTb\0\x05\xAD\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x80;\x15b\0\x06'W\x91Q\x92\x83R`\x01`\x01`\xA0\x1B\x03\x16`\x04\x83\x01R`\0\x19`$\x83\x01R\x82\x90\x82\x90`D\x90\x82\x90\x87\x90Z\xF1\x80\x15b\0\x06!Wb\0\x05\xEEW\x82\x80\xF3[\x81b\0\x06\x12\x92\x90=\x10b\0\x06\x19W[b\0\x06\t\x81\x83b\0\x15IV[\x81\x01\x90b\0\x16eV[P8\x80\x82\x80\xF3[P=b\0\x05\xFDV[b\0\x15\xC6V[b\0\x16\x12V[b\0\x06G\x90\x84=\x86\x11b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[P8b\0\x05~V[b\0\x15\x01V[\x80b\0\x06eb\0\x06l\x92b\0\x15\x17V[\x80b\0\x01\xC0V[8b\0\x03IV[\x80b\0\x06eb\0\x06\x83\x92b\0\x15\x17V[8b\0\x02\xF3V[b\0\x01 V[` \x90` `@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10b\0\x06\xB9WPPPP\x90V[\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01b\0\x06\xAAV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x14T\x91\x82\x81R` \x80\x91\x01\x92`\x14`\0R\x7F\xCEm{R\x82\xBD\x9A6a\xAE\x06\x1F\xEE\xD1\xDB\xDANR\xAB\x07;\x1F\x92\x85\xBEn\x15]\x9C8\xD4\xEC\x91`\0\x90[\x82\x82\x10b\0\x07RWb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[`@Q\x91\x82\x91\x82b\0\x06\x90V[\x03\x90\xF3[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x07&V[`\0[\x83\x81\x10b\0\x07\x87WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x07vV[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01`\x05\x94\x83`@\x86`\x05\x1B\x85\x01\x01\x97\x01\x95`\0\x80\x94[\x87\x86\x10b\0\x07\xD6WPPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x80\x97\x98\x99`?\x19\x83\x82\x03\x01\x87R\x8AQ\x90\x82\x87\x82\x01\x92`\x01\x80`\xA0\x1B\x03\x81Q\x16\x83R\x01Q\x91\x87\x84\x83\x01R\x82Q\x80\x91R``\x90\x84\x82\x84\x01\x92\x82\x8A\x1B\x85\x01\x01\x94\x01\x92\x87[\x82\x81\x10b\0\x08CWPPPPP\x90\x80`\x01\x92\x9B\x01\x96\x01\x96\x01\x94\x97\x96\x95\x93\x92\x91\x90b\0\x07\xC2V[\x91\x93\x95\x80\x80`\x01\x93\x95\x97`_\x19\x87\x82\x03\x01\x89R\x89Qb\0\x08o\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x07sV[`\x1F\x80\x19\x91\x01\x16\x01\x01\x97\x01\x95\x01\x91\x01\x91\x8C\x95\x94\x93\x91\x92b\0\x08\x1DV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x1BTb\0\x08\xAC\x81b\0\x16\x7FV[`@\x91b\0\x08\xBE`@Q\x92\x83b\0\x15IV[\x80\x82R`\x1B`\0\x90\x81R` \x7F:\xD8\xAAO\x87TC#\xA9\xD1\xE5\xDD\x90/@\xC3VRzyUhq\x13\xDB_\x9A\x85\xADW\x9D\xC1\x81\x85\x01[\x84\x84\x10b\0\t\x07W`@Q\x80b\0\x07N\x88\x82b\0\x07\x98V[`\x02\x83`\x01\x92\x89Qb\0\t\x1A\x81b\0\x15,V[\x84\x80`\xA0\x1B\x03\x86T\x16\x81Rb\0\t2\x85\x87\x01b\0\x16\x98V[\x83\x82\x01R\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x08\xEFV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x16T\x91\x82\x81R` \x80\x91\x01\x92`\x16`\0R\x7F\xD83\x14}}\xC3U\xBAE\x9F\xC7\x88\xF6i\xE5\x8C\xFA\xF9\xDC%\xDD\xCD\x07\x02\xE8}i\xC7\xB5\x12B\x89\x91`\0\x90[\x82\x82\x10b\0\t\xAFWb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\t\x94V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x15T\x91\x82\x81R` \x80\x91\x01\x92`\x15`\0R\x7FU\xF4H\xFD\xEA\x98\xC4\xD2\x9E\xB3@u~\xF0\xA6l\xD0=\xBB\x958\x90\x8Aj\x81\xD9`&\xB7\x1E\xC4u\x91`\0\x90[\x82\x82\x10b\0\n:Wb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\n\x1FV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `@Qf\n\xA8{\xEES\x80\0\x81R\xF3[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01\x82`@\x85`\x05\x1B\x84\x01\x01\x96\x01\x94`\0\x80\x93[\x86\x85\x10b\0\n\xB9WPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x80\x96\x97\x98`?\x19\x83\x82\x03\x01\x86R\x89Q\x82``\x81\x88\x85\x01\x93`\x01\x80`\xA0\x1B\x03\x81Q\x16\x86R\x01Q\x93\x88\x83\x82\x01R\x84Q\x80\x94R\x01\x92\x01\x90\x85\x90[\x80\x82\x10b\0\x0B\x18WPPP\x90\x80`\x01\x92\x9A\x01\x95\x01\x95\x01\x93\x96\x95\x94\x92\x91\x90b\0\n\xA6V[\x82Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x8A\x94\x93\x84\x01\x93\x90\x92\x01\x91`\x01\x91\x90\x91\x01\x90b\0\n\xF5V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x19Tb\0\x0B^\x81b\0\x16\x7FV[b\0\x0Bm`@Q\x91\x82b\0\x15IV[\x81\x81R`\x19`\0\x90\x81R\x91` \x7F\x94I\x98'>G{IQD\xFB\x87\x94\xC9\x14\x19\x7F<\xCBF\xBE)\0\xF4i\x8F\xD0\xEFt<\x96\x95\x81\x84\x01[\x83\x86\x10b\0\x0B\xB7W`@Q\x80b\0\x07N\x87\x82b\0\n\x7FV[\x82`@Qb\0\x0B\xC6\x81b\0\x15,V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x85\x01\x80T\x80\x83Rb\0\x0B\xF4` \x84\x01[\x92`\0R` `\0 \x90V[\x90`\0\x91[\x81`\x07\x84\x01\x10b\0\rjW\x93\x86`\x02\x97\x96\x94\x82\x94b\0\x0Ck\x94`\x01\x9B\x98T\x91\x84\x82\x82\x10b\0\rGW[\x82\x82\x10b\0\r)W[\x82\x82\x10b\0\r\x0BW[\x82\x82\x10b\0\x0C\xEDW[\x82\x82\x10b\0\x0C\xCFW[\x82\x82\x10b\0\x0C\xB1W[\x82\x82\x10b\0\x0C\x94W[P\x10b\0\x0C~W[P\x90P\x03\x82b\0\x15IV[\x83\x82\x01R\x81R\x01\x92\x01\x95\x01\x94\x90b\0\x0B\x9FV[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x01\x86\x908b\0\x0C`V[\x83\x81\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x8D\x91\x01\x93\x01\x84b\0\x0CXV[`\x01`\x01`\xE0\x1B\x03\x19`@\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0COV[`\x01`\x01`\xE0\x1B\x03\x19``\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0CFV[`\x01`\x01`\xE0\x1B\x03\x19`\x80\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C=V[`\x01`\x01`\xE0\x1B\x03\x19`\xA0\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C4V[`\x01`\x01`\xE0\x1B\x03\x19`\xC0\x85\x90\x1B\x16\x85R\x90\x93\x01\x92\x8C\x01\x84b\0\x0C+V[\x84b\0\r`\x8F\x93\x96\x86`\xE0\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x93\x01\x84b\0\x0C\"V[\x93\x94\x95P\x90\x91`\x01a\x01\0`\x08\x92b\0\x0E:\x87T\x8D`\xE0b\0\r\x96\x85\x84\x83\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[`\x01`\x01`\xE0\x1B\x03\x19`\xC0\x84\x81\x1B\x82\x16\x84\x88\x01R`\xA0\x85\x81\x1B\x83\x16`@\x89\x01R\x91\x93b\0\x0E)\x92\x90\x91\x85\x91\x87\x91\x90b\0\x0E\x17\x90b\0\x0E\0\x8C\x86\x86``\x92`\x80\x90b\0\r\xEF\x85\x82\x01\x85\x85\x85\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x92\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[`\x01`\x01`\xE0\x1B\x03\x19`@\x85\x90\x1B\x86\x16\x16\x90\x8C\x01RV[\x89\x01\x92\x1B\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x84\x01\x91\x16c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x94\x01\x92\x01\x90\x88\x95\x94\x93\x92b\0\x0B\xF9V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x83\x01\x92\x81`@\x84`\x05\x1B\x83\x01\x01\x95\x01\x93`\0\x91[\x84\x83\x10b\0\x0E\x80WPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x84\x80\x80`\x01\x93`?\x19\x86\x82\x03\x01\x87R\x8AQb\0\x0E\xAE\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x07sV[`\x1F\x01`\x1F\x19\x16\x01\x01\x98\x01\x96\x95\x94\x91\x90\x91\x01\x92\x01\x90b\0\x0EoV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCW`\x18Tb\0\x0E\xEB\x81b\0\x16\x7FV[\x90`@\x92b\0\x0E\xFE`@Q\x93\x84b\0\x15IV[\x81\x83R` \x80\x84\x01\x90`\x18\x83R\x7F\xB1=-v\xD1\xF4\xB7\xBE\x83H\x82\xE4\x10\xB3\xE3\xA8\xAF\xAFi\xF86\0\xAE$\xDB5C\x91\xD27\x8D.\x95\x83\x92[\x85\x84\x10b\0\x0FHW`@Q\x80b\0\x07N\x89\x82b\0\x0EKV[\x81Q\x85\x91\x89T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x10\x1EW[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x0F\xEFWP`\x01\x14b\0\x0F\xABW[PPb\0\x0F\x9C\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x98\x01\x93\x01\x92\x96b\0\x0F0V[\x95Pb\0\x0F\xBD\x8D`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x0F\xDBWPP\x94\x90\x94\x01\x93b\0\x0F\x9C\x81b\0\x0F\x8AV[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x0F\xC1V[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x0F\x9C\x81b\0\x0F\x8AV[cNH{q`\xE0\x1B\x8BR`\"`\x04R`$\x8B\xFD[\x91`\x7F\x16\x91b\0\x0FbV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`\x1ATb\0\x10J\x81b\0\x16\x7FV[b\0\x10Y`@Q\x91\x82b\0\x15IV[\x81\x81R`\x1A`\0\x90\x81R\x91` \x7F\x05|8J}\x1CT\xF3\xA1\xB2\xE5\xE6{&\x17\xB8\"O\xDF\xD1\xEAr4\xEE\xA5s\xA6\xFFf_\xF6>\x81\x84\x01[\x83\x86\x10b\0\x10\xA3W`@Q\x80b\0\x07N\x87\x82b\0\n\x7FV[\x82`@Qb\0\x10\xB2\x81b\0\x15,V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x85\x01\x80T\x80\x83Rb\0\x10\xD9` \x84\x01b\0\x0B\xE8V[\x90`\0\x91[\x81`\x07\x84\x01\x10b\0\x11[W\x93\x86`\x02\x97\x96\x94\x82\x94b\0\x11H\x94`\x01\x9B\x98T\x91\x84\x82\x82\x10b\0\rGW\x82\x82\x10b\0\r)W\x82\x82\x10b\0\r\x0BW\x82\x82\x10b\0\x0C\xEDW\x82\x82\x10b\0\x0C\xCFW\x82\x82\x10b\0\x0C\xB1W\x82\x82\x10b\0\x0C\x94WP\x10b\0\x0C~WP\x90P\x03\x82b\0\x15IV[\x83\x82\x01R\x81R\x01\x92\x01\x95\x01\x94\x90b\0\x10\x8BV[\x93\x94\x95P\x90\x91`\x01a\x01\0`\x08\x92b\0\x11\x87\x87T\x8D`\xE0b\0\r\x96\x85\x84\x83\x1Bc\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90RV[\x01\x94\x01\x92\x01\x90\x88\x95\x94\x93\x92b\0\x10\xDEV[4b\0\x06\x8AW`\0\x80`\x03\x196\x01\x12b\0\x01\xCCW`\x17Tb\0\x11\xBA\x81b\0\x16\x7FV[\x90`@\x92b\0\x11\xCD`@Q\x93\x84b\0\x15IV[\x81\x83R` \x80\x84\x01\x90`\x17\x83R\x7F\xC6$\xB6l\xC0\x13\x8B\x8F\xAB\xC2\t$\x7Fr\xD7X\xE1\xCF3CumT;\xAD\xBF$!+\xED\x8C\x15\x95\x83\x92[\x85\x84\x10b\0\x12\x17W`@Q\x80b\0\x07N\x89\x82b\0\x0EKV[\x81Q\x85\x91\x89T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x12\xD9W[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x12\xBEWP`\x01\x14b\0\x12zW[PPb\0\x12k\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x98\x01\x93\x01\x92\x96b\0\x11\xFFV[\x95Pb\0\x12\x8C\x8D`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x12\xAAWPP\x94\x90\x94\x01\x93b\0\x12k\x81b\0\x12YV[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x12\x90V[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x12k\x81b\0\x12YV[\x91`\x7F\x16\x91b\0\x121V[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` b\0\x13\x03b\0\x18\x19V[`@Q\x90\x15\x15\x81R\xF3[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `\"T`@Q\x90\x81R\xF3[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW`@Q\x80`\x13T\x91\x82\x81R` \x80\x91\x01\x92`\x13`\0R\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90\x91`\0\x90[\x82\x82\x10b\0\x13\x97Wb\0\x07N\x85b\0\x07A\x81\x89\x03\x82b\0\x15IV[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x13|V[4b\0\x06\x8AW` 6`\x03\x19\x01\x12b\0\x01\xCCW`\x1CT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15b\0\x06'W`\xE0`$\x91`@Q\x92\x83\x80\x92c\x06\x8B\xCD\x8D\x85\x1B\x82R`\x045`\x04\x83\x01RZ\xFA\x80\x15b\0\x06!W`\xC0b\0\x14)\x91b\0\x07N\x93`\0\x91b\0\x14CW[P\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x90V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R\x90\x81\x90` \x82\x01\x90V[b\0\x14j\x91P`\xE0=`\xE0\x11b\0\x14qW[b\0\x14a\x81\x83b\0\x15IV[\x81\x01\x90b\0\x18\xF8V[8b\0\x14\x1AV[P=b\0\x14UV[4b\0\x06\x8AW`\x006`\x03\x19\x01\x12b\0\x01\xCCW` `\xFF`\x07T\x16`@Q\x90\x15\x15\x81R\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x06OW`@RV[`@\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OW`@RV[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0\x15\x81WV[`\0\x80\xFD[\x90``\x82R`\x06``\x83\x01Re\x0E\x8D\xEDl\xAD\xCB`\xD3\x1B`\x80\x83\x01R`\xA0` \x83\x01R`\x01`\xA0\x83\x01R`\x0B`\xFB\x1B`\xC0\x83\x01R`\x12`@`\xE0\x84\x01\x93\x01RV[`@Q=`\0\x82>=\x90\xFD[\x90``\x82R`\x06``\x83\x01RetokenY`\xD0\x1B`\x80\x83\x01R`\xA0` \x83\x01R`\x01`\xA0\x83\x01R`Y`\xF8\x1B`\xC0\x83\x01R`\x12`@`\xE0\x84\x01\x93\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81` \x91\x03\x12b\0\x01\xCCWQ\x80\x15\x15\x81\x03b\0\x15\x81W\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x06OW`\x05\x1B` \x01\x90V[\x90\x81T\x91b\0\x16\xA7\x83b\0\x16\x7FV[\x92`@\x91b\0\x16\xBA`@Q\x95\x86b\0\x15IV[\x81\x85R`\0\x90\x81R` \x80\x82 \x93\x82\x91\x90\x81\x88\x01[\x85\x84\x10b\0\x16\xE0WPPPPPPPV[\x81Q\x85\x91\x88T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x90\x81\x15b\0\x17\xA2W[\x88\x83\x10\x82\x14b\0\x10\nW\x82\x84R\x88\x94\x93\x92\x91` \x84\x01\x91\x81\x15b\0\x17\x87WP`\x01\x14b\0\x17CW[PPb\0\x174\x81`\x01\x96\x03\x82b\0\x15IV[\x81R\x01\x97\x01\x93\x01\x92\x95b\0\x16\xCFV[\x95Pb\0\x17U\x8C`\0R` `\0 \x90V[\x90\x8A\x91[\x81\x83\x10b\0\x17sWPP\x94\x90\x94\x01\x93b\0\x174\x81b\0\x17\"V[\x80T\x88\x84\x01R\x89\x95\x90\x92\x01\x91\x86\x01b\0\x17YV[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x94Pb\0\x174\x81b\0\x17\"V[\x91`\x7F\x16\x91b\0\x16\xFAV[\x90`\x04\x91c\x06g\xF9\xD7`\xE4\x1B\x81Rb\0\x17\xD0\x82Q\x80\x93` \x86\x85\x01\x91\x01b\0\x07sV[\x01\x01\x90V[=\x15b\0\x18\x14W=\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11b\0\x06OW`@Q\x91b\0\x18\x08`\x1F\x82\x01`\x1F\x19\x16` \x01\x84b\0\x15IV[\x82R=`\0` \x84\x01>V[``\x90V[`\x07T`\x08\x1C`\xFF\x16\x15b\0\x187W`\x07T`\x08\x1C`\xFF\x16\x90V[\x90V[`\0sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0\x18YWP\x90V[`\0\x91P\x81\x90`@Q\x82\x81b\0\x18\x9A` \x82\x01\x90`@\x82\x01\x91sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x81R` e\x19\x98Z[\x19Y`\xD2\x1B\x91\x01RV[\x03b\0\x18\xAF`\x1F\x19\x91\x82\x81\x01\x85R\x84b\0\x15IV[b\0\x18\xD5`@Q\x91\x82b\0\x18\xC8` \x82\x01\x96\x87b\0\x17\xADV[\x03\x90\x81\x01\x83R\x82b\0\x15IV[Q\x92Z\xF1Pb\0\x184b\0\x18\xE8b\0\x17\xD5V[` \x80\x82Q\x83\x01\x01\x91\x01b\0\x16eV[\x90\x81`\xE0\x91\x03\x12b\0\x01\xCCW`@Q\x90`\xE0\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x06OWb\0\x19\x83\x91`\xC0\x91`@Rb\0\x196\x81b\0\x15lV[\x84Rb\0\x19F` \x82\x01b\0\x15lV[` \x85\x01Rb\0\x19Y`@\x82\x01b\0\x15lV[`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01b\0\x15lV[`\xC0\x82\x01R\x90V[`@\x80Qa\x13\x01\x80\x82\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x83\x82\x10\x83\x83\x11\x17b\0\x06OW\x83b\0\x19\xBFb\0\x1D \x93\x83\x85\x849b\0\x15\x86V[\x03`\0\x94\x85\xF0\x80\x15b\0\x06!W`\x1E\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x84Q\x91\x81\x83\x01\x83\x81\x10\x85\x82\x11\x17b\0\x06OW\x83\x92b\0\x1A\x0C\x92\x849b\0\x15\xD2V[\x03\x90\x83\xF0\x80\x15b\0\x06!W`\x1F\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x1AB\x91\x16b\0\x02\xA2V[\x80;\x15b\0\x06'W\x83Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0`$\x83\x01R\x91\x84\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1D\x08W[P`\x1FTb\0\x1A\x9F\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x81;\x15b\0\x06'W\x84Q\x90\x81R0`\x04\x82\x01Rh\x05k\xC7^-c\x10\0\0`$\x82\x01R\x90\x83\x90\x82\x90`D\x90\x82\x90\x84\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xF1W[P`\x1ETb\0\x1A\xF5\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1FTb\0\x1B\x0C\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x90\x84Q\x91a\x07\xA1\x90\x81\x84\x01\x92\x84\x84\x10\x86\x85\x11\x17b\0\x06OW\x84\x93b\0\x1BY\x93b\0\xBB%\x869`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R``\x01\x90V[\x03\x90\x83\xF0\x80\x15b\0\x06!W`\x1D\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U\x82Q\x90a0)\x90\x81\x83\x01\x90\x81\x11\x83\x82\x10\x17b\0\x06OW\x82\x91b\x000!\x839\x03\x90\x82\xF0\x80\x15b\0\x06!W`\x1C\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`\x1ETb\0\x1B\xD7\x91\x16b\0\x02\xA2V[`\x1CT\x90\x92\x90b\0\x1B\xF1\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x92\x80;\x15b\0\x06'W\x81Qc\t^\xA7\xB3`\xE0\x1B\x80\x82R`\x01`\x01`\xA0\x1B\x03\x95\x90\x95\x16`\x04\x82\x01R`\0\x19`$\x82\x01R` \x94\x91\x85\x90\x82\x90`D\x90\x82\x90\x88\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xCFW[P`\x1FTb\0\x1CV\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[`\x1CTb\0\x1Cm\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x02\xA2V[\x91\x81;\x15b\0\x06'W\x92Q\x92\x83R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x83\x01R`\0\x19`$\x83\x01R\x90\x91\x83\x91\x83\x91`D\x91\x83\x91\x90Z\xF1\x80\x15b\0\x06!Wb\0\x1C\xB2WPPV[\x81b\0\x1C\xCC\x92\x90=\x10b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[PV[b\0\x1C\xE9\x90\x85=\x87\x11b\0\x06\x19Wb\0\x06\t\x81\x83b\0\x15IV[P8b\0\x1C>V[\x80b\0\x06eb\0\x1D\x01\x92b\0\x15\x17V[8b\0\x1A\xDDV[\x80b\0\x06eb\0\x1D\x18\x92b\0\x15\x17V[8b\0\x1A\x87V\xFE`\xE0`@\x90\x80\x82R4b\0\x04\x99WPb\0\x13\x01\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xE6V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04JW\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04DW\x82b\0\0V\x91\x85\x01b\0\x05ZV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04DW\x83\x91b\0\0u\x91\x84\x01b\0\x05ZV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04?W\x84Q\x94\x86\x86\x11b\0\x04)W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06~V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xD8W[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03pW\x89\x92b\0\x03dW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03PW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06~V[\x82\x81\x11b\0\x02\xFBW[P\x87\x91\x83\x11`\x01\x14b\0\x02\x97W\x88\x92b\0\x02\x8BW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06~V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02kWPP`\x01\x14b\0\x02+W[Pb\0\x01m\x92P\x03\x82b\0\x04\xE6V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02\x17WP\x83\x90RQ\x90 `\xC0Ra\x0CE\x90\x81b\0\x06\xBC\x829`\x80Q\x81a\x06\x84\x01R`\xA0Q\x81a\nM\x01R`\xC0Q\x81a\nt\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02RWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x028V[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xE4WPP\x84\x11b\0\x02\xCAW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xBCV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xA9V[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03FW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x037WPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x03'V[\x92P\x81\x92b\0\x03\x18V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xC1WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xA7W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x99V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x7FV[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x04\x1FW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\x10WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x01V[\x92P\x81\x92b\0\x03\xF4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\nV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04)W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x06%W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04)W` \x90`@Q\x92b\0\x05\x95\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xE6V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xD0W`\0[\x81\x81\x10b\0\x05\xBCWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xA6V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xB0W[` \x83\x10\x14b\0\x06\x9AWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\x8EV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003`\xA0`@\x90\x80\x82R4b\0\x01[WP`\x01\x80U\x80Qa\x11D\x80\x82\x01\x91`\x01`\x01`@\x1B\x03\x91\x82\x84\x11\x82\x85\x10\x17b\0\x01EWb\0\x1E\xE5\x829\x80`\0\x93\x03\x90\x83\xF0\x80\x15b\0\x01;W`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81\x90R\x80;\x15b\0\0\xE9W\x90\x82\x80\x92`\x84\x86Q\x80\x96\x81\x93c&lE\xBB`\xE1\x1B\x83R\x89`\x04\x84\x01R\x81`D\x84\x01R```$\x84\x01R\x81`d\x84\x01RZ\xF1\x80\x15b\0\0\xDFWb\0\0\xB8W[\x83Qa\x1D<\x90\x81b\0\x01\xA9\x829`\x80Q\x81\x81\x81a\x0Bj\x01Ra\x10\x08\x01R\xF3[\x82\x11b\0\0\xCBWP\x81R8\x80\x80b\0\0\x99V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x84Q=\x84\x82>=\x90\xFD[\x83QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x83Q=\x84\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003`\x80\x80`@R4b\0\0\xECW`@Q`\x1Fb\0;\x878\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17b\0\0\xD6W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12b\0\0\x86WQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x90\x81\x90\x03b\0\0\x81W`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x90\x91\x17\x90U`@Qa:M\x90\x81b\0\x01:\x829\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0C\x1CW`\x005`\xE0\x1C\x80c\x04 X\n\x14a\x01\xACW\x80c\x12\x06I\xC5\x14a\x01\xA7W\x80c\x13N\xAD\x12\x14a\x01\xA2W\x80c\x1E\x97\x8C\xB0\x14a\x01\x9DW\x80c0m\xB4k\x14a\x01\x98W\x80c3\"f\xF3\x14a\x01\x93W\x80c9(\xFF\x97\x14a\x01\x8EW\x80c;&\x8D]\x14a\x01\x89W\x80c;M\x100\x14a\x01\x84W\x80cN\x81\x7F\xD9\x14a\x01\x7FW\x80cO\xD6|X\x14a\x01zW\x80c^\xB4\x08\xFC\x14a\x01uW\x80cb7V\x9F\x14a\x01pW\x80cme\"\x99\x14a\x01kW\x80c\x7F\x17@\x9C\x14a\x01fW\x80c\x81\xB5\xFA\xC2\x14a\x01aW\x80c\x90.\xCA\xA2\x14a\x01\\W\x80c\xA8\xC6.v\x14a\x01WW\x80c\xAFNC\x7F\x14a\x01RW\x80c\xB0\x9D\x04\xE5\x14a\x01MW\x80c\xCB\x1FU2\x14a\x01HW\x80c\xCE\x15;\xF4\x14a\x01CW\x80c\xE9G\x16\xD5\x14a\x01>W\x80c\xEE>\x8C\xFB\x14a\x019W\x80c\xF3\r7\xF2\x14a\x014Wc\xF9\xC2\x82\x11\x03a\x0C\x1CWa\x0C\0V[a\x0B\xD0V[a\x0B\x9FV[a\x0BdV[a\x0B(V[a\n\xE3V[a\n\xB0V[a\n\x94V[a\nkV[a\nBV[a\n\x15V[a\tsV[a\tWV[a\x08\xEAV[a\x08\xCEV[a\x08\xA5V[a\x08\x89V[a\x08ZV[a\x08\x1FV[a\x05\x82V[a\x05+V[a\x04\xFCV[a\x04\xD7V[a\x04DV[a\x03(V[a\x02\xADV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\0[\x83\x81\x10a\x02dWPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01a\x02TV[\x90` \x91a\x02\x8D\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01a\x02QV[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90` a\x02\xAA\x92\x81\x81R\x01\x90a\x02tV[\x90V[4a\x03\x05W`@6`\x03\x19\x01\x12a\x03\0Wa\x02\xFC`@Q`\x02` \x82\x01R`\x045`@\x82\x01R`$5``\x82\x01R``\x81Ra\x02\xE8\x81a\x03\xD4V[`@Q\x91\x82\x91` \x83R` \x83\x01\x90a\x02tV[\x03\x90\xF3[a\x02\x01V[a\x01\xB1V[`\x80\x90`\x03\x19\x01\x12a\x03\0W`\x045\x90`$5\x90`D5\x90`d5\x90V[4a\x03\x05W` a\x03Da\x03;6a\x03\nV[\x92\x91\x90\x91a\r\x04V[`@Q\x90\x81R\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\xA0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[a\x03\x9DV[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[``\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04?WV[`\0\x80\xFD[4a\x03\x05W`\xE06`\x03\x19\x01\x12a\x03\0W`\xA06`C\x19\x01\x12a\x04\xB8Wa\x02\xFCa\x04\xAC`@Qa\x04s\x81a\x03\xB3V[`D5\x81R`d5` \x82\x01R`\x845`@\x82\x01R`\xA45``\x82\x01R`\xC45a\x04\x9C\x81a\x04.V[`\x80\x82\x01R`$5`\x045a\x16\xB0V[`@Q\x91\x82\x91\x82a\x02\x99V[a\x03LV[``\x90`\x03\x19\x01\x12a\x03\0W`\x045\x90`$5\x90`D5\x90V[4a\x03\x05W` a\x03Da\x04\xF6a\x04\xED6a\x04\xBDV[\x91\x92\x90\x92a\x12+V[\x91a\x18\x99V[4a\x03\x05W` a\x03Da\x05\x0F6a\x04\xBDV[\x90a\x05\"a\x05\x1C\x84a\x12+V[\x93a\x13\xB2V[\x92\x91\x90\x91a\x19\x86V[4a\x03\x05W` a\x03Da\x05>6a\x04\xBDV[\x90a\x05Ka\x05\x1C\x84a\x12+V[\x92\x90Pa\x1C\xF0V[\x80\x15\x15\x03a\x04?WV[\x90\x92`\x80\x92a\x02\xAA\x95\x94\x15\x15\x83R` \x83\x01R`@\x82\x01R\x81``\x82\x01R\x01\x90a\x02tV[4a\x03\x05W``6`\x03\x19\x01\x12a\x03\0W`$5`\x045a\x05\xA2\x82a\x05SV[`D5\x90a\x05\xF5a\x05\xB1a\r\xFBV[\x92a\x05\xBAa\r\xFBV[\x93a\x05\xC4\x84a\x13\xB2V[` \x84\x99\x93\x95\x92\x99\x01\x94`@\x99\x8A\x86\x01\x92\x83R\x86R\x84Ra\x05\xE4\x87a\x12+V[\x95\x86\x91\x85Q\x90\x87Q\x90Q\x91\x8Aa\x12\xD9V[\x92\x15a\x07\x97W\x92\x82a\x06=\x90\xFD[\x90\x91\x92a\r\x1B\x90a\r\x14\x83a\x12+V[\x90\x85a\x14\xABV[\x90`@Q\x93a\rR\x85a\rD\x83\x86\x88` \x85\x01`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x03`\x1F\x19\x81\x01\x87R\x86a\x04\x0CV[`\0Ta\ri\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92Wa\r\x92\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\r\xB9W[Pa\r\xB3\x90a\x12+V[\x93a\x14\xF9V[a\r\xB3\x91\x93Pa\r\xE0\x90` =` \x11a\r\xE7W[a\r\xD8\x81\x83a\x04\x0CV[\x81\x01\x90a\x0C\xD2V[\x92\x90a\r\xA9V[P=a\r\xCEV[\x91a\x04\xF6a\x02\xAA\x93a\x12+V[`@Q\x90``\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@R`\0`@\x83\x82\x81R\x82` \x82\x01R\x01RV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90`\x01\x82\x01\x80\x92\x11a\x0EOWV[a\x0E+V[\x91\x90\x82\x01\x80\x92\x11a\x0EOWV[\x15a\x0EhWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: x reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x0EOWV[\x91\x90\x82\x03\x91\x82\x11a\x0EOWV[\x15a\x0E\xDCWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: y reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xC0\x91\x03\x12a\x03\0W\x81Qa\x0FC\x81a\x05SV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[a\x02\xAA\x93\x92``\x92`\x01\x80`\xA0\x1B\x03\x16\x82R` \x82\x01R\x81`@\x82\x01R\x01\x90a\x02tV[\x91a\x08\x9Fa\x02\xAA\x93a\x12+V[\x90\x91\x92a\x0F\xAB\x90a\x0F\xA4\x83a\x12+V[\x90\x85a!:V[\x90`@Q\x93a\x0F\xD4\x85a\rD\x83\x87\x87` \x85\x01`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`\0Ta\x0F\xEB\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92Wa\x10\x14\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\x10;W[Pa\x105\x90a\x12+V[\x93a!gV[a\x105\x91\x93Pa\x10Y\x90` =` \x11a\r\xE7Wa\r\xD8\x81\x83a\x04\x0CV[\x92\x90a\x10+V[\x91\x90` \x92\x83\x81\x83\x03\x12a\x03\0W\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x82\x11a\x11xW\x01\x82`\x1F\x82\x01\x12\x15a\x11\x1FW\x80Q\x91\x82\x11a\x03\xCFW`@Q\x92a\x10\xAD`\x1F\x84\x01`\x1F\x19\x16\x87\x01\x85a\x04\x0CV[\x82\x84R\x85\x83\x83\x01\x01\x11a\x10\xCAW\x84\x83\x94\x95a\x02\xAA\x94\x01\x91\x01a\x02QV[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x87\x90R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xA0\x91\x03\x12a\x04\xB8W`@Qa\x11\xE0\x81a\x03\xB3V[`\x80\x80\x82\x94\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R``\x81\x01Q``\x85\x01R\x01Q\x91a\x12\x13\x83a\x04.V[\x01RV[\x90`\xA0\x82\x82\x03\x12a\x03\0Wa\x02\xAA\x91a\x11\xC8V[`\x80\x90`@Qa\x12:\x81a\x03\xB3V[`\0\x92\x81\x84\x80\x93R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x01Ra\x12la\x06\xE4a\x06\xE4\x84T`\x01\x80`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07\x92W`@Qc\xDC\x17\x83U`\xE0\x1B\x81R`\x04\x81\x01\x92\x90\x92R\x82\x90\x82\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07\x8DW\x82a\x02\xAA\x93\x92a\x12\xB6W[PP` \x80\x82Q\x83\x01\x01\x91\x01a\x12\x17V[a\x12\xD2\x92P=\x80\x91\x83>a\x12\xCA\x81\x83a\x04\x0CV[\x81\x01\x90a\x10`V[8\x80a\x12\xA5V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x84\x90R``\x81\x01\x85\x90R\x93\x91\x92a\x13\x01\x85`\x80\x81\x01a\rDV[`\0T`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07\x92Wa\x136\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\x13]W[Pa\x13W\x90a\x12+V[\x93a$\xF7V[a\x13W\x91\x93Pa\x13{\x90` =` \x11a\r\xE7Wa\r\xD8\x81\x83a\x04\x0CV[\x92\x90a\x13MV[\x90\x81` \x91\x03\x12a\x03\0WQa\x02\xAA\x81a\x04.V[\x90\x81``\x91\x03\x12a\x03\0W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`\0T\x90\x91\x90a\x13\xCC\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92W` `\x04\x91`@Q\x92\x83\x80\x92c+\xEE\x84\xF1`\xE2\x1B\x82RZ\xFA\x90\x81\x15a\x07\x8DW`\0\x91a\x14|W[P`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07\x92W`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x93\x90\x93R``\x90\x83\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07\x8DW`\0\x80\x93`\0\x93a\x14EW[P\x92\x91\x90V[\x91\x93PPa\x14k\x91P``=``\x11a\x14uW[a\x14c\x81\x83a\x04\x0CV[\x81\x01\x90a\x13\x97V[\x92\x90\x92\x918a\x14?V[P=a\x14YV[a\x14\x9E\x91P` =` \x11a\x14\xA4W[a\x14\x96\x81\x83a\x04\x0CV[\x81\x01\x90a\x13\x82V[8a\x13\xFAV[P=a\x14\x8CV[a\x06#\x90a\x14\xCDa\x14\xC8a\x14\xC3\x86a\x02\xAA\x97\x96a&MV[a&\xC2V[a&\xF5V[\x92Qa(\xE5V[a\x14\xF7\x93``\x92\x96\x95\x93a\x01\0\x83\x01\x97\x83R` \x83\x01R`@\x82\x01R\x01\x90a\t\xDFV[V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a\x16}W[\x85\x85\x12a\x16^W\x90a\x15,a\x15:\x92[`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x03`\x1F\x19\x81\x01\x83R\x82a\x04\x0CV[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa\x15P\x81\x85a6\xC2V[\x92a\x15[\x81\x86a6\xC2V[\x88a\x15f\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a\x15z\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a\x15\x95W[PPPPPPPPPP\x90V[\x15a\x15\xF6W[P\x86\x97\x98P\x81\x92a\x15\xB5a\x15\xAF\x8B\x89a\x0ETV[`\x01\x1C\x90V[\x99a\x15\xC0\x8B\x88a6\xC2V[\x90\x84a\x15\xCC\x88\x84a\x18EV[\x13a\x15\xEAWPP\x89\x93[\x88a\x15\xE1\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a\x15\x83V[\x8B\x98P\x90\x95P\x93a\x15\xD6V[`\x14\x10\x80a\x16\x11W[\x15a\x16\nW\x88a\x15\x9BV[\x80\x80a\x15\x88V[P\x80\x83\x10a\x15\xFFV[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x86\x90R`$\x81\x01\x91\x90\x91R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81R`\x04\x81\x01\x91\x90\x91R`$\x81\x01\x92\x90\x92RP`D\x90\xFD[\x93P\x91a\x16j\x90a)\x11V[\x91a\x16w\x84\x83\x85\x84a'\xECV[\x93a\x15\nV[\x85\x85\x13a\x16\x91W\x90a\x15,a\x15:\x92a\x15\x1AV[\x93P\x94a\x16\x9D\x90a'8V[\x94a\x16\xAA\x84\x83\x88\x84a'\xECV[\x93a\x16}V[\x91a\x16\xC1a\x14\xC8a\x14\xC3\x83\x85a2\x87V[\x91g\r\xE0\xB6\xB3\xA7d\0\0\x92\x83\x03\x92\x83\x11a\x0EOWa\x17\x18\x82a\x17\x04a\x16\xF9a\x14\xC8a\x14\xC3\x84a\x16\xF3a\x176\x9A\x8Ca);V[\x97a&MV[a\x06#\x85\x84Qa(\xE5V[\x92a\x17\x11\x82\x82\x86\x8Aa'\xECV[\x84\x88a$\xF7V[\x90`@Q\x94` \x86\x01R`@\x85\x01R``\x84\x01R`\x80\x83\x01\x90a\t\xDFV[a\x01\0\x81Ra\x01 \x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@R\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x0EOWV[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x0EOWV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\x0EOWV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x0EOWV[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x90g\x1B\xC1mgN\xC8\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\x0EOW`\0\x19\x83\x05\x03a\x0EOWV[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\x0EOW\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x81\x15a\x18\x83W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\x0EOW\x05\x90V[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[\x91\x90\x91a\x18\xD4` \x83\x01\x93a\x18\xCE\x85Qa\x18\xC6a\x18\xBC`@\x88\x01\x92\x83Q\x90a+\x86V[\x97Q\x82Q\x90a+\xAFV[\x90Q\x90a'WV[\x92a'xV[\x92g\r\xE0\xB6\xB3\xA7d\0\0\x80\x85\x12\x15a\x19RW`\0\x85\x13\x15a\x19GW`\0\x85\x82\x03\x95\x12\x81\x86\x12\x81\x16\x91\x86\x13\x90\x15\x16\x17a\x0EOWa\x19;a\x19@\x92a\x196a\x19(a\x14\xC8\x94a\x19#a\x02\xAA\x99a+\xCEV[a\x18EV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x17\xB8V[a,ZV[\x90Qa(\xE5V[PPPPP`\0\x19\x90V[PPPPP`\0\x90V[\x90\x95\x94\x92\x93a\x14\xF7\x94`\x80\x93a\x01 \x84\x01\x98\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01\x90a\t\xDFV[\x90\x92\x91\x82\x86Q` \x88\x01Q`@\x89\x01Q\x90``\x8A\x01Q\x92a\x19\xA6\x83a.\x0BV[a\x19\xAF\x90a\x1BpV[\x93a\x19\xB9\x90a\x17YV[\x90a\x19\xC3\x8Aa.\xC9V[a\x19\xCC\x8Ba\x1C\x97V[a\x19\xD5\x91a/{V[a\x19\xDE\x8Ba\x1C\x97V[a\x19\xE7\x84a.\xF8V[a\x19\xF0\x91a\x17\xB8V[a\x19\xFA\x90\x88a/{V[a\x1A\x03\x91a/\xF8V[a\x1A\x0C\x90a0\x16V[\x93a\x1A\x16\x84a2\xFEV[a\x1A\x1F\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a\x1A3\x90a,ZV[\x90a\x1A=\x91a/{V[a\x1AF\x90a/\xAAV[a\x1AO\x90a\x1C\xDFV[\x84\x86a\x1AZ\x86a/LV[\x90a\x1Ad\x91a/{V[\x90a\x1An\x91a/{V[a\x1Aw\x91a\x1C\xC3V[a\x1A\x80\x90a,ZV[\x82a\x1A\x8B\x8C\x84a/{V[\x90a\x1A\x95\x91a/{V[a\x1A\x9E\x91a/{V[a\x1A\xA7\x8Ba\x1C\x97V[a\x1A\xB0\x84a.\xF8V[a\x1A\xB9\x91a\x17\xB8V[a\x1A\xC2\x91a/\xF8V[\x95a\x1A\xCC\x91a/{V[\x90a\x1A\xD6\x90a\x1C\xA9V[a\x1A\xDF\x91a/{V[\x92a\x1A\xE9\x91a/{V[a\x1A\xF2\x90a/\xD1V[\x90a\x1A\xFC\x91a\x17\xB8V[a\x1B\x05\x90a1gV[a\x1B\x0E\x91a/{V[a\x1B\x17\x86a.\xC9V[a\x1B \x91a/\xF8V[\x90a\x1B*\x84a\x1C\xDFV[\x90a\x1B4\x91a\x1C\xC3V[\x90a\x1B>\x91a\x1C\xC3V[`\0\x13a\x1BeWa\x02\xAA\x95a\x1B`\x93a\x15,\x92`@Q\x96\x87\x95` \x87\x01a\x19\\V[a)\x90V[PPPPPP`\0\x90V[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x15a\x0EOWV[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81a\x03\xE8\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\x0EOWV[`\x01`\xFF\x1B\x81\x14a\x0EOW`\0\x03\x90V[\x93\x92\x90\x91\x92\x80Q\x91` \x82\x01Q\x90`@\x83\x01Q\x92``\x01Q\x93a\x1D\x12\x84a.\x0BV[a\x1D\x1B\x90a\x1BpV[\x94a\x1D%\x90a\x17YV[\x91\x82a\x1D0\x88a.\xC9V[a\x1D:\x89\x84a\x1C\xC3V[a\x1DC\x91a/{V[a\x1DM\x89\x84a\x1C\xC3V[a\x1DW\x83\x85a/{V[a\x1D`\x91a\x17\xB8V[a\x1Dj\x90\x8Ba/{V[a\x1Ds\x91a/\xF8V[a\x1D|\x90a0\x16V[\x95a\x1D\x86\x86a2\xFEV[a\x1D\x8F\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a\x1D\xA3\x90a,ZV[\x90a\x1D\xAD\x91a/{V[a\x1D\xB6\x90a/\xAAV[a\x1D\xBF\x90a\x1C\xDFV[\x86\x88a\x1D\xCA\x88a/LV[\x90a\x1D\xD4\x91a/{V[\x90a\x1D\xDE\x91a/{V[a\x1D\xE7\x91a\x1C\xC3V[a\x1D\xF0\x90a,ZV[\x81a\x1D\xFB\x8A\x86a/{V[\x90a\x1E\x05\x91a/{V[a\x1E\x0E\x91a/{V[\x91a\x1E\x19\x89\x82a\x1C\xC3V[\x91a\x1E#\x91a/{V[a\x1E,\x91a\x17\xB8V[a\x1E5\x91a/\xF8V[\x96a\x1E?\x91a/{V[\x90a\x1EI\x90a\x1C\xA9V[a\x1ER\x91a/{V[\x92a\x1E\\\x91a/{V[a\x1Ee\x90a/\xD1V[\x90a\x1Eo\x91a\x17\xB8V[a\x1Ex\x90a1gV[a\x1E\x81\x91a/{V[\x90a\x1E\x8B\x90a.\xC9V[a\x1E\x94\x91a/\xF8V[\x91a\x1E\x9E\x90a\x1C\xDFV[\x90a\x1E\xA8\x91a\x1C\xC3V[\x90a\x02\xAA\x91a\x1C\xC3V[\x91\x90\x91a\x1E\xF0` \x83\x01\x91a\x1E\xEAa\x1E\xE2\x84Qa\x18\xC6a\x1E\xD8`@\x89\x01\x92\x83Q\x90a+\x86V[\x96Q\x82Q\x90a+\xAFV[\x95\x85Qa'WV[\x90a'xV[g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x82\x12\x15a\x19RW`\0\x82\x13\x15a\x19GWa\x02\xAA\x94a\x19@\x93a\x1F&a\x19;\x93a\x19#a\x14\xC8\x96a+\xCEV[\x05a\x1C\xC3V[\x90\x92\x91\x85Q` \x87\x01Q`@\x88\x01Q``\x89\x01Q\x91a\x1FJ\x82a.\x0BV[a\x1FS\x90a\x1BpV[\x92a\x1F]\x90a\x17YV[\x93a\x1Fg\x86a.\xC9V[a\x1Fp\x87a\x1C\x97V[a\x1Fy\x91a/{V[a\x1F\x83\x89\x83a/{V[a\x1F\x8C\x88a\x1C\x97V[a\x1F\x95\x91a/{V[a\x1F\x9E\x90a\x1C\xDFV[\x86a\x1F\xA9\x8B\x85a/{V[a\x1F\xB2\x90a/!V[\x90a\x1F\xBC\x91a/{V[a\x1F\xC5\x91a\x1C\xC3V[a\x1F\xCE\x91a/\xF8V[a\x1F\xD7\x90a\x1C\xDFV[a\x1F\xE0\x90a0\x16V[\x92a\x1F\xEA\x83a2\xFEV[a\x1F\xF3\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a \x07\x90a,ZV[\x90a \x11\x91a/{V[a \x1A\x90a/\xAAV[a #\x90a\x1C\xDFV[\x83\x85a .\x85a/LV[\x90a 8\x91a/{V[\x90a B\x91a/{V[a K\x91a\x1C\xC3V[a T\x90a,ZV[\x85a _\x88\x8Aa/{V[\x90a i\x91a/{V[a r\x91a/{V[\x90a |\x87a\x1C\x97V[a \x85\x87a.\xF8V[a \x8E\x91a\x17\xB8V[a \x97\x91a/{V[a \xA0\x91a/\xF8V[\x93a \xAB\x87\x89a/{V[\x90a \xB5\x90a\x1C\xA9V[a \xBE\x91a/{V[\x92a \xC8\x91a/{V[a \xD1\x90a/\xD1V[\x90a \xDB\x91a\x17\xB8V[a \xE4\x90a1gV[a \xED\x91a/{V[a \xF6\x83a.\xC9V[a \xFF\x91a/\xF8V[\x90a!\t\x90a\x1C\xA9V[\x90a!\x13\x91a\x1C\xC3V[`\0\x13a\x1BeWa\x02\xAA\x95a!5\x93a\x15,\x92`@Q\x96\x87\x95` \x87\x01a\x19\\V[a*\xAFV[\x91a\x14\xC3a\x14\xC8\x91a!K\x93a2\x87V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x03\x90\x81\x11a\x0EOWa\x02\xAA\x91a(\xE5V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a\"\x8AW[\x85\x85\x12a\"kW\x90a\x15,a!\x99\x92`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa!\xAF\x81\x85a6\xE3V[\x92a!\xBA\x81\x86a6\xE3V[\x88a!\xC5\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a!\xD9\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a!\xF3WPPPPPPPPPP\x90V[\x15a\"NW[P\x86\x97\x98P\x81\x92a\"\ra\x15\xAF\x8B\x89a\x0ETV[\x99a\"\x18\x8B\x88a6\xE3V[\x90\x84a\"$\x88\x84a\x18EV[\x13a\"BWPP\x89\x93[\x88a\"9\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a!\xE2V[\x8B\x98P\x90\x95P\x93a\".V[`\x14\x10\x80a\"bW[\x15a\x16\nW\x88a!\xF9V[P\x80\x83\x10a\"WV[\x93P\x91a\"w\x90a)\x11V[\x91a\"\x84\x84\x83\x83\x86a'\xECV[\x93a!xV[\x85\x85\x13a\"\x9EW\x90a\x15,a!\x99\x92a\x15\x1AV[\x93P\x94a\"\xAA\x90a'8V[\x94a\"\xB7\x84\x83\x83\x89a'\xECV[\x93a\"\x8AV[\x92\x91\x90a\"\xD3a\"\xCD\x82\x84a);V[\x85a(\xE5V[\x93\x81\x03\x90\x81\x11a\x0EOW\x92\x81\x03\x90\x81\x11a\x0EOW\x90V[\x92\x91\x90a\"\xFAa\"\xCD\x82\x84a);V[\x93\x81\x01\x80\x91\x11a\x0EOW\x92\x81\x01\x80\x91\x11a\x0EOW\x90V[\x93\x90\x92\x91\x81Q` \x83\x01Q\x91`@\x84\x01Q\x93``\x01Q\x94a#1\x85a.\x0BV[a#:\x90a\x1BpV[\x95a#D\x90a\x17YV[\x92\x83a#O\x89a.\xC9V[a#Y\x8A\x85a\x1C\xC3V[a#b\x91a/{V[a#l\x85\x84a/{V[a#v\x8B\x86a\x1C\xC3V[a#\x7F\x91a/{V[a#\x88\x90a\x1C\xDFV[\x82\x85a#\x94\x88\x87a/{V[\x90a#\x9E\x91a/{V[\x90a#\xA8\x91a/{V[a#\xB1\x91a\x1C\xC3V[a#\xBA\x91a/\xF8V[a#\xC3\x90a\x1C\xDFV[a#\xCC\x90a0\x16V[\x96a#\xD6\x87a2\xFEV[a#\xDF\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a#\xF3\x90a,ZV[\x90a#\xFD\x91a/{V[a$\x06\x90a/\xAAV[a$\x0F\x90a\x1C\xDFV[\x87\x89a$\x1A\x89a/LV[\x90a$$\x91a/{V[\x90a$.\x91a/{V[a$7\x91a\x1C\xC3V[a$@\x90a,ZV[\x81a$K\x8B\x8Da/{V[\x90a$U\x91a/{V[a$^\x91a/{V[\x92a$i\x8A\x82a\x1C\xC3V[\x91a$s\x91a/{V[a$|\x91a\x17\xB8V[a$\x85\x91a/{V[a$\x8E\x91a/\xF8V[\x96a$\x98\x91a/{V[\x90a$\xA2\x90a\x1C\xA9V[a$\xAB\x91a/{V[\x92a$\xB5\x91a/{V[a$\xBE\x90a/\xD1V[\x90a$\xC8\x91a\x17\xB8V[a$\xD1\x90a1gV[a$\xDA\x91a/{V[\x90a$\xE4\x90a.\xC9V[a$\xED\x91a/\xF8V[\x90a\x1E\xA8\x90a\x1C\xA9V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a&\x1AW[\x85\x85\x12a%\xFBW\x90a\x15,a%)\x92`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa%?\x81\x85a7\x05V[\x92a%J\x81\x86a7\x05V[\x88a%U\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a%i\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a%\x83WPPPPPPPPPP\x90V[\x15a%\xDEW[P\x86\x97\x98P\x81\x92a%\x9Da\x15\xAF\x8B\x89a\x0ETV[\x99a%\xA8\x8B\x88a7\x05V[\x90\x84a%\xB4\x88\x84a\x18EV[\x13a%\xD2WPP\x89\x93[\x88a%\xC9\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a%rV[\x8B\x98P\x90\x95P\x93a%\xBEV[`\x14\x10\x80a%\xF2W[\x15a\x16\nW\x88a%\x89V[P\x80\x83\x10a%\xE7V[\x93P\x94a&\x07\x90a'8V[\x94a&\x14\x84\x87\x84\x84a'\xECV[\x93a%\x08V[\x85\x85\x13a&.W\x90a\x15,a%)\x92a\x15\x1AV[\x93P\x91a&:\x90a)\x11V[\x91a&G\x84\x84\x84\x84a'\xECV[\x93a&\x1AV[a&\xBDa&\xB8a\x02\xAA\x93a&\xB2a&\xAD\x82Qa&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\x97a&\x92`@` \x8B\x01Q\x9A\x01Q\x96a&\x8C\x88\x8Ca+\x86V[\x9Da);V[a2\xFEV[\x97a2\xFEV[a\x17\xEEV[\x05a,ZV[a'WV[a'\x9AV[\x90a\x17\xB8V[a\x17\xD1V[a\x18hV[a&\xF1a&\xB8a&\xECg\x13\xA0K\xBD\xFD\xC9\xBE\x88a&\xE6g\x1B\xC1mgN\xC8\0\0\x95a\x17\xD1V[\x05a\x1C\xDFV[a1gV[\x05\x90V[`\0\x81\x12a'\0W\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x10`$\x82\x01RotoUint: negative`\x80\x1B`D\x82\x01R`d\x90\xFD[a\x03\xE7\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wa\x03\xE8\x90\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04?W\x04\x90V[g\x06\xF0[Y\xD3\xB2\0\0\x90\x80\x82\x02\x91\x82\x04\x14`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x04\x90V[\x90\x92\x82\x82\x10\x15a(\xA0Wa\x02\xAA\x93a(i\x92\x84g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82a(\x14\x83\x83a'xV[\x10a(\x8DWP`\x01`\x01`\xFF\x1B\x03\x95\x90P[\x83Q\x91a(WPP\x89\x92[\x87a*4\x88\x86a\x0E\xC8V[\x92\x01\x93\x99\x98a)\xDCV[\x8B\x97P\x90\x94P\x92a*)V[\x86\x10\x80a*dW[\x15a*]W\x88a)\xF3V[\x80\x80a)\xE1V[Pa\x01\0\x82\x10a*RV[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81Ra\x03\xE8`\x04\x82\x01R`$\x81\x01\x85\x90R`D\x90\xFD[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a*\x8EWa*\xCB\x81a8\x86V[a*\xD5\x85\x83a9\xF6V[`\0a*\xE1\x82\x84a\x18EV[\x13a*oWPa*\xF2\x85\x96\x95a\x0E\xB8V[`\x01\x94`\0\x91\x86\x80[a+\x0BWPPPPPPPP\x90PV[\x15a+hW[P\x85\x96\x97\x98P\x80\x91a+&a\x15\xAF\x8B\x88a\x0ETV[\x99a+1\x8B\x87a9\xF6V[\x90\x83a+=\x87\x84a\x18EV[\x13a+\\WPP\x89\x92[\x87a+R\x88\x86a\x0E\xC8V[\x92\x01\x93\x99\x98a*\xFBV[\x8B\x97P\x90\x94P\x92a+GV[\x86\x10\x80a+{W[\x15a*]W\x88a+\x11V[Pa\x01\0\x82\x10a+pV[\x90a+\x90\x90a.\x0BV[c;\x9A\xCA\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x15a\x0EOWa\x02\xAA\x91a'WV[a\x02\xAA\x91a&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\xAD\x95a2\xFEV[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a,TWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x12\x15a,BW\x80\x15a,0W\x80`\x01\x1B\x90\x81\x05`\x02\x03a\x0EOWa,\x0C\x90a0\x16V[\x90g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x91\x80\x83\x02\x92\x83\x05\x14`\x01\x16\x15a\x04?Wa\x02\xAA\x91\x05a\x1C\xDFV[`@Qc\"\xEDY\x85`\xE2\x1B\x81R`\x04\x90\xFD[`@Qc\x07\xA0!'`\xE0\x1B\x81R`\x04\x90\xFD[P`\0\x90V[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a,TWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a-\xAAWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[\x91\x90a\x01 \x83\x82\x03\x12a\x03\0W\x82Q\x92` \x81\x01Q\x92a\x02\xAA`@\x83\x01Q\x93`\x80``\x85\x01Q\x94\x01a\x11\xC8V[`\xB5\x81`\x01`\x88\x1B\x81\x10\x15a.\xB2W[\x80i\x01\0\0\0\0\0\0\0\0\0b\x01\0\0\x92\x10\x15a.\xA5W[e\x01\0\0\0\0\0\x81\x10\x15a.\x98W[c\x01\0\0\0\x81\x10\x15a.\x8BW[\x01\x02`\x12\x1C`\x01\x90\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x90\x1C\x80\x80\x92\x04\x10\x90\x03\x90V[`\x10\x1C\x91`\x08\x1B\x91a.OV[` \x1C\x91`\x10\x1B\x91a.BV[`@\x1C\x91` \x1B\x91a.3V[Ph\xB5\0\0\0\0\0\0\0\0\x90P`\x80\x82\x90\x1Ca.\x1BV[g\x1B\xC1mgN\xC8\0\0\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x03\xE8\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x03\xE8\x80\x82\x02\x91`\x01`\0\x19\x82\x10\x17\x91\x81\x84\x05\x14\x90\x15\x17\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x13\xA0K\xBD\xE7\x8C\xC4\0\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x15\x82\x84\x05\x82\x14\x17`\0\x19\x90\x92\x10`\x01`\xFF\x1B\x90\x91\x13\x17\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\x13\xA0K\xBD\xE7\x8C\xC4\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14\x82\x15\x15\x16\x15a\x04?W\x05\x90V[`\0\x81\x12\x80\x15a1VW[a1DW\x80\x15a,BWg\x1B\xC1mgN\xC8\0\0\x81\x14a,0Wg\r\xE0\xB6\xB3\xA7d\0\0\x81\x12\x90\x81\x15a15W\x90[a0W\x82a4\xCCV[\x80\x15a,BWa0\xC0a0\x84a0\x7Fa0za0ua0\xC5\x95a2\xFEV[a5\x8DV[a.\x0BV[a\x18\x0BV[a\x196a0\x98a0\x93\x83a4\xF7V[a\x1B\x89V[a0\xBAa0\xB5a0\xAFa0\xAA\x86a5\"V[a\x1B\xA1V[\x85a6\x04V[a\x1B\xB9V[\x90a5kV[a5\xB5V[\x91`\0\x90[`\x02\x82\x10a0\xE5WPP\x15a0\xDCW\x90V[a\x02\xAA\x90a\x1C\xDFV[\x90\x92a1-\x81a1'a0\xFD\x85a\x196`\x01\x96a1gV[a0\xBAa1\x1Da1\x18a\x19;a1\x13\x87\x80a6\x04V[a\x1C\xDFV[a5\xDDV[a&\xB2\x83\x86a6\x04V[\x90a\x1C\xC3V[\x93\x01\x90a0\xCAV[a1>\x90a\x17|V[\x90a0NV[`@Qc-\x04\x83\xC5`\xE2\x1B\x81R`\x04\x90\xFD[Pg\x1B\xC1mgN\xC8\0\0\x81\x13a0!V[\x80\x15a2zWgV\x98\xEE\xF0fp\0\0\x81\x12\x15a,TWgV\x98\xEE\xF0fo\xFF\xFF\x19\x81\x13\x15a2mW`\0a2]a1\x9C\x83a4\x9FV[a2%a\x19;a1\xB6a1\xB1a0\xB5\x85a'\xC1V[a5LV[\x92a(ia2Xa2Sa2La2Fa2Aa2;a26a20a2+\x8Da2%a2 a2\x1Aa2\x15a0\xAFa2\x10a2\na2\x05a1\xFFa1\xFA\x8Aa6%V[a\x1B\xD1V[\x89a6\x04V[a\x1B\xEBV[\x87a6\x04V[a\x1C\x03V[a\x1C\x1DV[\x83a6\x04V[a\x1C5V[\x90a6\x04V[a\x1COV[\x8Ca6\x04V[a\x1CgV[\x8Aa6\x04V[a\x1C\x7FV[\x88a6\x04V[\x93\x80a6\x04V[a\x18$V[a\x17\x9FV[\x91\x12\x15a\x02\xAAWa\x02\xAA\x90a\x17|V[Pg\x1B\xC1mgN\xC8\0\0\x90V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x90V[a&\xBDa&\xB8a\x02\xAA\x93a1'a&\xAD\x82Qa&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\x97a&\x92`@` \x8B\x01Q\x9A\x01Q\x96a&\x8C\x88\x8Ca+\x86V[\x15a2\xCDWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x90a3*`\0\x82\x13a2\xC6V[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a3F\x82a6PV[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1D\x90V[`\x01`\xFF\x1B\x81\x14a4\xBAW`\0\x81\x12\x15a\x02\xAAW\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x04?Wn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04?W\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a6[\x81\x15\x15a2\xC6V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x90a6\xD9a\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x91\x92\x90Pa'\xECV[\x90a6\xFAa\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x90P\x91\x90\x91a'\xECV[\x90a7\x1Ca\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x92\x90Pa'\xECV[\x80Q\x81\x01` \x01\x90` \x01\x90a7:\x91a-\xDEV[\x80\x91\x93\x92PQ\x90` \x81\x01Q`@\x82\x01Q\x91``\x01Q\x92a7Z\x83a.\x0BV[a7c\x90a\x1BpV[\x93a7m\x90a\x17YV[\x90a7w\x86a.\xC9V[a7\x80\x87a\x1C\x97V[a7\x89\x91a/{V[a7\x92\x87a\x1C\x97V[a7\x9B\x84a.\xF8V[a7\xA4\x91a\x17\xB8V[a7\xAE\x90\x89a/{V[a7\xB7\x91a/\xF8V[a7\xC0\x90a0\x16V[\x93a7\xCA\x84a2\xFEV[a7\xD3\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a7\xE7\x90a,ZV[\x90a7\xF1\x91a/{V[a7\xFA\x90a/\xAAV[a8\x03\x90a\x1C\xDFV[\x84\x86a8\x0E\x86a/LV[\x90a8\x18\x91a/{V[\x90a8\"\x91a/{V[a8+\x91a\x1C\xC3V[a84\x90a,ZV[\x82a8?\x88\x84a/{V[\x90a8I\x91a/{V[a8R\x91a/{V[a8[\x87a\x1C\x97V[a\x1E#\x84a.\xF8V[\x90a8{a\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a-\xDEV[\x94\x93\x90\x92\x91Pa\x1C\xF0V[\x80Q\x81\x01` \x01\x90` \x01\x90a8\x9B\x91a-\xDEV[\x80\x91\x92\x93PQ` \x82\x01Q\x90`@\x83\x01Q\x92``\x01Q\x93a8\xBB\x84a.\x0BV[a8\xC4\x90a\x1BpV[\x94a8\xCE\x90a\x17YV[\x91a8\xD8\x87a.\xC9V[a8\xE1\x88a\x1C\x97V[a8\xEA\x91a/{V[a8\xF4\x83\x83a/{V[a8\xFD\x89a\x1C\x97V[a9\x06\x91a/{V[a9\x0F\x90a\x1C\xDFV[\x84a9\x1A\x85\x85a/{V[a9#\x90a/!V[\x90a9-\x91a/{V[a96\x91a\x1C\xC3V[a9?\x91a/\xF8V[a9H\x90a\x1C\xDFV[a9Q\x90a0\x16V[\x94a9[\x85a2\xFEV[a9d\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a9x\x90a,ZV[\x90a9\x82\x91a/{V[a9\x8B\x90a/\xAAV[a9\x94\x90a\x1C\xDFV[\x85\x87a9\x9F\x87a/LV[\x90a9\xA9\x91a/{V[\x90a9\xB3\x91a/{V[a9\xBC\x91a\x1C\xC3V[a9\xC5\x90a,ZV[\x83a9\xD0\x89\x8Ba/{V[\x90a9\xDA\x91a/{V[a9\xE3\x91a/{V[\x90a9\xED\x88a\x1C\x97V[a$s\x85a.\xF8V[\x90a:\ra\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a-\xDEV[\x94\x93\x90\x92Pa#\x11V\xFE\xA2dipfsX\"\x12 \x9F\xC8\xD6(\xD4d\x1Cp\x07\xB3\x1E\x8A\x8C\x8A\xD0\x8B9])g\xF2\x8B\xA9\x9CtUk\x08\r\x995mdsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\xE6W`@Q`\x1Fa\x1FT8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xD0W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0\x80WQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x90\x81\x90\x03a\0{W`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x90\x91\x17\x90U`@Qa\x1E \x90\x81a\x014\x829\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0B\xF7W`\x005`\xE0\x1C\x80b.RK\x14a\0\x8BW\x80c\x1E\xDBq\xE5\x14a\0\x86W\x80ch\xBD>8\x14a\0\x81W\x80cs\xCB-\x03\x14a\0|W\x80c\x8A\x04\xBD\xD5\x14a\0wW\x80c\xAC\xAD)\x89\x14a\0rW\x80c\xAF\xBA\x13\xC4\x14a\0mWc\xDC\x17\x83U\x03a\x0B\xF7Wa\x0B\x8FV[a\x0BfV[a\t\xBFV[a\t\x85V[a\x08\x1FV[a\x04\xCCV[a\x03\xC7V[4a\x01\x07W`@6`\x03\x19\x01\x12a\x01\x02W`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\0\xF5a\0\xD2a\0\xC4` \x936\x90`\x04\x01a\x03aV[\x83\x80\x82Q\x83\x01\x01\x91\x01a\x0CZV[\x90a\0\xEFa\0\xE1`\x045a\x0EyV[\x86\x80\x82Q\x83\x01\x01\x91\x01a\x0C\xC6V[\x92a\x10tV[`@Q\x90\x81R\xF3[a\x01\xA7V[a\x01WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\xA0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[a\x02PV[`\xC0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@RV[\x92\x91\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x02\x82W`@Q\x91a\x02\xEF`\x1F\x82\x01`\x1F\x19\x16` \x01\x84a\x02\xA3V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x03\x0CW\x82\x81` \x93\x84`\0\x96\x017\x01\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x80`\x1F\x83\x01\x12\x15a\x03\x7FW\x81` a\x03|\x935\x91\x01a\x02\xC5V[\x90V[a\x01\xF7V[\x90`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x02\x82W`@R```\x03\x82\x94\x80T\x84R`\x01\x81\x01T` \x85\x01R`\x02\x81\x01T`@\x85\x01R\x01T\x91\x01RV[4a\x04\xB1W` 6`\x03\x19\x01\x12a\x01\x02W`\x045`\0R`\x01` Ra\x01\xC0`@`\0 a\x03\xF4\x81a\x03\x84V[\x90a\x04\x01`\x04\x82\x01a\x03\x84V[\x90a\x04\xA3a\x04\x11`\x08\x83\x01a\x03\x84V[a\x04y`\x0C\x84\x01T\x93`\r`\x01\x80`\xA0\x1B\x03\x91\x01T\x16\x94a\x04S`@Q\x80\x98``\x80\x91\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R\x01Q\x91\x01RV[\x80Q`\x80\x88\x01R` \x81\x01Q`\xA0\x88\x01R`@\x81\x01Q`\xC0\x88\x01R``\x01Q`\xE0\x87\x01RV[\x80Qa\x01\0\x86\x01R` \x81\x01Qa\x01 \x86\x01R`@\x81\x01Qa\x01@\x86\x01R``\x01Qa\x01`\x85\x01RV[a\x01\x80\x83\x01Ra\x01\xA0\x82\x01R\xF3[a\x01\x07V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04\xC7WV[`\0\x80\xFD[4a\x04\xB1W``\x80`\x03\x196\x01\x12a\x01\x02Wa\x04\xE9`\x045a\x04\xB6V[`$5\x90`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xFDWa\x05\r\x906\x90`\x04\x01a\x03aV[\x90a\x05)a\x05\x1A\x84a\x0EyV[` \x80\x82Q\x83\x01\x01\x91\x01a\x0C\xC6V[`\0T\x90\x92\x90a\x05O\x90a\x05C\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07\rW`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x95\x90\x95R\x82\x90\x85\x90`$\x90\x82\x90Z\xFA\x80\x15a\x07\x08W`\0\x91\x82\x95\x83\x92a\x06\xCDW[P\x80` \x80a\x05\x9C\x93Q\x83\x01\x01\x91\x01a\x0CZV[\x93\x91\x94\x90\x96\x82\x86\x11`\0\x14a\x06@WP\x91a\x05\xDD\x82a\x05\xD8\x83a\x05\xD3a\x05\xEE\x97a\x05\xC9a\x05\xE5\x98\x8Ca\r\x8AV[\x90\x8C\x01Q\x90a\x15\x9BV[a\x15\x9BV[a\x15\xC7V[P[\x83a\r\xE5V[\x93\x82\x86\x85a\x10tV[\x93\x84`\x13\x19\x12\x92\x83a\x065W[a\x061\x93\x94`@Q\x96\x87\x96\x87\x92`\xA0\x94\x91\x97\x96\x95\x92`\xC0\x85\x01\x98\x15\x15\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x01RV[\x03\x90\xF3[`\x14\x86\x12\x93Pa\x05\xFBV[\x90\x92\x90\x91P\x81\x87\x11\x15a\x06oWa\x06i\x82a\x05\xD8\x83a\x05\xD3a\x05\xEE\x97a\x05\xC9a\x05\xE5\x98\x8Ea\r\x8AV[Pa\x05\xDFV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7Finvalid swap: inputs x and y hav`D\x82\x01Roe the same sign!`\x80\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x95Pa\x05\x9C\x92Pa\x06\xF5\x91P\x83=\x85\x11a\x07\x01W[a\x06\xED\x81\x83a\x02\xA3V[\x81\x01\x90a\x0CZV[\x95\x91\x92\x90\x95\x91\x90a\x05\x88V[P=a\x06\xE3V[a\rhV[a\r\x15V[\x90```\x03\x19\x83\x01\x12a\x01\x02W`\x045a\x07+\x81a\x04\xB6V[\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\0\xFDW\x80`#\x83\x01\x12\x15a\x03\x7FW\x81`\x04\x015\x93\x84\x11a\x07\xC6W`$\x84\x83\x01\x01\x11a\x07mW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[4a\x04\xB1Wa\x08-6a\x07\x12V[`\0T\x92\x93P\x91`\x01`\x01`\xA0\x1B\x03\x163\x03a\tsWa\t1a\t)a\x05\x1Aa\t$\x95a\x08k`\x80\x95a\x08\xEE\x97a\x08ba\x0ENV[P\x81\x01\x90a\x11sV[` \x81\x9B\x94\x9A\x93\x99\x92\x9B\x01Qa\x08\x8B\x86`\0R`\x01` R`@`\0 \x90V[U`@\x81\x01Q`\x04a\x08\xA7\x87`\0R`\x01` R`@`\0 \x90V[\x01U\x80Q`\x08a\x08\xC1\x87`\0R`\x01` R`@`\0 \x90V[\x01U``\x81\x01Q`\x0Ca\x08\xDE\x87`\0R`\x01` R`@`\0 \x90V[\x01U\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\ra\t\x04\x84`\0R`\x01` R`@`\0 \x90V[\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90UV[a\x0EyV[\x84\x83\x85a\x10tV[\x92\x83`\x13\x19\x12\x91\x82a\thW[`@\x80Q\x93\x15\x15\x84R` \x84\x01\x95\x90\x95R\x93\x82\x01\x92\x90\x92R``\x81\x01\x92\x90\x92R`\x80\x82\x01R`\xA0\x90\xF3[`\x14\x85\x12\x92Pa\t>V[`@QchS\xCB\xA7`\xE0\x1B\x81R`\x04\x90\xFD[4a\x04\xB1W``a\t\x956a\x07\x12V[\x81\x80\x94P\x94\x92\x94\x01\x03\x12a\x01\x02W\x805\x90a\t1a\t)a\x05\x1A`@` \x85\x015\x94\x015\x95a\x0EyV[4a\x04\xB1Wa\t\xCD6a\x07\x12V[`\0T\x90\x93\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x163\x03a\tsWa\n\x0Ea\x05C`\ra\n\0\x87`\0R`\x01` R`@`\0 \x90V[\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x91\x16\x03a\x0BTWa\n!\x83\x82\x01\x82a\x0E\x19V[a\n*\x81a\x0E.V[`\x01\x81\x03a\ncWPa\nMa\nHa\n^\x92`\x0C\x94\x956\x91a\x02\xC5V[a\x12\xAFV[\x92`\0R`\x01` R`@`\0 \x90V[\x01U[\0[a\nl\x81a\x0E.V[`\x03\x81\x03a\n\xA8WP\x90a\n\x90a\n\x8Ba\n\xA3\x93a\na\x956\x91a\x02\xC5V[a\x12\x05V[\x92\x90\x91`\0R`\x01` R`@`\0 \x90V[a\x12-V[a\n\xB1\x81a\x0E.V[`\x04\x81\x03a\n\xEBWP\x90`\x04a\n\xD2a\n\x8Ba\n\xE5\x94a\na\x966\x91a\x02\xC5V[\x93\x90\x92`\0R`\x01` R`@`\0 \x90V[\x01a\x12-V[a\n\xF4\x81a\x0E.V[`\x02\x81\x03a\x0B\x15WP\x90`\x08a\n\xD2a\n\x8Ba\n\xE5\x94a\na\x966\x91a\x02\xC5V[\x80a\x0B!`\x05\x92a\x0E.V[\x03a\x0BBWa\t\x04a\nMa\x0B=`\r\x93a\na\x966\x91a\x02\xC5V[a\x11\xDDV[`@Qc#]+=`\xE0\x1B\x81R`\x04\x90\xFD[`@Qcn\xDA\xEF/`\xE1\x1B\x81R`\x04\x90\xFD[4a\x04\xB1W`\x006`\x03\x19\x01\x12a\x01\x02W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x04\xB1W` \x80`\x03\x196\x01\x12a\x01\x02Wa\x0B\xAC`\x045a\x0EyV[\x90`@\x80Q\x91` \x83R\x83Q\x91\x82` \x85\x01R`\0[\x83\x81\x10a\x0B\xE4W\x84`@\x81\x86`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x81\x01\x03\x01\x90\xF3[\x85\x81\x01\x83\x01Q\x85\x82\x01\x83\x01R\x82\x01a\x0B\xC2V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81``\x91\x03\x12a\x01\x02W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81`\xA0\x91\x03\x12a\x01\x02W`\x80`@Q\x91a\x0C\xE0\x83a\x02fV[\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R``\x81\x01Q``\x84\x01R\x01Qa\r\r\x81a\x04\xB6V[`\x80\x82\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[`@Q=`\0\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x91\x90\x82\x03\x91\x82\x11a\r\x97WV[a\rtV[\x91\x90\x82\x01\x80\x92\x11a\r\x97WV[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\r\x97WV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\r\x97WV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\r\x97WV[`\x01`\xFF\x1B\x81\x14a\r\x97W`\0\x03\x90V[`\x06\x11\x15a\x04\xC7WV[\x90\x81` \x91\x03\x12a\x01\x02W5a\x03|\x81a\x0E\x0FV[`\x06\x11\x15a\x0E8WV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@Q\x90a\x0E[\x82a\x02fV[`\0`\x80\x83\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x01RV[a\x0E\x81a\x0ENV[\x81`\0R`\x01` Ra\x0E\x9Fa\x0E\x9A`@`\0 a\x03\x84V[a\x12\xE4V[\x91` \x82\x01\x92\x83R\x80`\0R`\x01` Ra\x0E\xC3a\x0E\x9A`\x08`@`\0 \x01a\x03\x84V[\x82R`\x0Ca\x0F\x04a\x0E\xECa\x0E\x9A`\x04a\x0E\xE6\x86`\0R`\x01` R`@`\0 \x90V[\x01a\x03\x84V[\x92`@\x85\x01\x93\x84R`\0R`\x01` R`@`\0 \x90V[\x01T\x90``\x83\x01\x91\x82R`@Q\x93\x83Q` \x86\x01RQ`@\x85\x01RQ``\x84\x01RQ`\x80\x83\x01R`\x80`\x01\x80`\xA0\x1B\x03\x91\x01Q\x16`\xA0\x82\x01R`\xA0\x81Ra\x03|\x81a\x02\x87V[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\r\x97WV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\r\x97WV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\r\x97WV[\x90\x92\x82\x82\x10\x15a\x11.Wa\x03|\x93a\x10\xF1\x92\x84g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82a\x10\x9C\x83\x83a\x15\xF7V[\x10a\x11\x1BWP`\x01`\x01`\xFF\x1B\x03\x95\x90P[\x83Q\x91a\x10\xC4a\x10\xBE\x83\x85a\x16\x19V[\x85a\x15\xF7V[\x10a\x10\xF6WP`\x01`\x01`\xFF\x1B\x03\x92a\x10\xEB\x92P\x90P[`@` \x82\x01Q\x91\x01Q\x90a\x15rV[\x92a\x10XV[a\x10XV[a\x10\xEB\x92a\x11\na\x11\x10\x92a\x11\x15\x94a\x16\x19V[\x90a\x15\xF7V[a\x13\x9FV[\x91a\x10\xDBV[a\x11(\x91a\x11\x10\x91a\x15\xF7V[\x94a\x10\xAEV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1A`$\x82\x01R\x7FtradingFunction: invalid x\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x80\x91\x03a\x01\0\x81\x12a\x01\x02W\x815\x92` \x83\x015\x92`\xA0`@\x82\x015\x93`_\x19\x01\x12a\x11\xD8W`\xE0`@Q\x91a\x11\xA8\x83a\x02fV[``\x81\x015\x83R`\x80\x81\x015` \x84\x01R`\xA0\x81\x015`@\x84\x01R`\xC0\x81\x015``\x84\x01R\x015a\r\r\x81a\x04\xB6V[a\x0CuV[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x11\xFA` `@\x93\x01Qa\x0E\x0FV[\x01Qa\x05C\x81a\x04\xB6V[``\x81\x80Q\x81\x01\x03\x12a\x01\x02Wa\x12\x1F` \x82\x01Qa\x0E\x0FV[```@\x82\x01Q\x91\x01Q\x90\x91V[\x91\x90B\x82\x11\x15a\x12\x9DWa\x12Ca\x0E\x9A\x84a\x03\x84V[\x90\x81\x84UB`\x03\x85\x01UB\x83\x03\x91\x83\x83\x11a\r\x97Wa\x12a\x91a\r\xE5V[B\x83\x14a\x12\x87W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\r\x97W`\x02\x92`\x01\x85\x01U\x05\x91\x01UV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`@Qcf\xF1\x02\xED`\xE1\x1B\x81R`\x04\x90\xFD[`@\x81\x80Q\x81\x01\x03\x12a\x01\x02W\x80a\x12\xCC` `@\x93\x01Qa\x0E\x0FV[\x01Q\x90V[\x81\x81\x02\x92\x91\x81\x15\x91\x84\x04\x14\x17\x15a\r\x97WV[``\x81\x01Q` \x82\x01Q\x80\x82\x14a\x13_W\x80B\x11`\0\x14a\x13WW\x90[\x81\x03\x90\x81\x11a\r\x97W`@\x82\x01\x90\x81Q`\0\x81\x13`\0\x14a\x134WPa\x13.\x90a\x03|\x93Q\x92Q\x90a\x12\xD1V[\x90a\r\x9CV[\x92a\x13K\x92Pa\x13E\x90Q\x93a\r\xFEV[\x90a\x12\xD1V[\x81\x03\x90\x81\x11a\r\x97W\x90V[PB\x90a\x13\x01V[PPQ\x90V[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\r\x97WV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\r\x97W`\0\x19\x83\x05\x03a\r\x97WV[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a\x15lWg\r\xE0\xB6\xB3\xA7d\0\0\x80\x82\x12\x15a\x15\x16W\x81\x15a\x157W`\x01\x82`\x01\x1B\x91`\x02\x93\x83\x05`\x02\x03a\r\x97W`\0\x83\x12\x80\x15a\x15[W[a\x15IW\x82\x15a\x15\x16Wg\x1B\xC1mgN\xC8\0\0\x83\x14a\x157W\x82\x12\x91\x82\x15a\x15(W\x92[a\x14\x10\x84a\x1B\xC7V[\x80\x15a\x15\x16Wa\x14\x82a\x14Aa\x14\x19\x81\x13\x15a\x15lWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a\x1BlWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x04\xC7Wn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\xC7W\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04\xC7Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x1DV\x81\x15\x15a\x17#V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[`\x01`\xFF\x1B\x81\x14a\x1D\xD8W`\0\x81\x12\x15a\x03|W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD\xFE\xA2dipfsX\"\x12 \xEC6\x0C\xDB\x88T\xB6\x16\x94\x9BZ\xE2\x06 i\xDF$I\xE5\xEF\xA1\xB1\xA1\xF0\x1F\xFAP\xF0\x94\x9B\x80\x85dsolcC\0\x08\x16\x003`\x80`@\x90\x80\x82R4a\x01\x06WP\x80Q`\x1Fa\x07\xA18\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xF0W\x80\x84\x92``\x94\x87R\x839\x81\x01\x03\x12a\0\xA1Wa\0O\x81a\x01SV[\x90\x82a\0]` \x83\x01a\x01SV[\x91\x01Q\x91`\x01\x80`\xA0\x1B\x03\x19\x913\x83`\0T\x16\x17`\0U`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x83`\x01T\x16\x17`\x01U\x16\x90`\x02T\x16\x17`\x02U`\x03UQa\x064\x90\x81a\x01m\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x01gWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003\xA2dipfsX\"\x12 s\xDD\xA1p\xEEe\xA2\rO'fK\x10q\x1E\xC9\xF3\x0CAll\x11\xCBto\xDE\x19\x8FG\xD2\xA0idsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static LOGNORMALSETUP_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct LogNormalSetUp(::ethers::contract::Contract); - impl ::core::clone::Clone for LogNormalSetUp { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for LogNormalSetUp { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for LogNormalSetUp { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for LogNormalSetUp { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(LogNormalSetUp)) - .field(&self.address()) - .finish() - } - } - impl LogNormalSetUp { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - LOGNORMALSETUP_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - LOGNORMALSETUP_ABI.clone(), - LOGNORMALSETUP_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `IS_TEST` (0xfa7626d4) function - pub fn is_test(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([250, 118, 38, 212], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `POOL_ID` (0xe0d7d0e9) function - pub fn pool_id( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([224, 215, 208, 233], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `TEST_SWAP_FEE` (0x620a2607) function - pub fn test_swap_fee( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([98, 10, 38, 7], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeArtifacts` (0xb5508aa9) function - pub fn exclude_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([181, 80, 138, 169], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeContracts` (0xe20c9f71) function - pub fn exclude_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([226, 12, 159, 113], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeSenders` (0x1ed7831c) function - pub fn exclude_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([30, 215, 131, 28], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `failed` (0xba414fa6) function - pub fn failed(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([186, 65, 79, 166], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolLiquidityToken` (0xe21485ad) function - pub fn get_pool_liquidity_token( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([226, 20, 133, 173], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setUp` (0x0a9254e4) function - pub fn set_up(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([10, 146, 84, 228], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifactSelectors` (0x66d9a9a0) function - pub fn target_artifact_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([102, 217, 169, 160], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifacts` (0x85226c81) function - pub fn target_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([133, 34, 108, 129], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetContracts` (0x3f7286f4) function - pub fn target_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([63, 114, 134, 244], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetInterfaces` (0x2ade3880) function - pub fn target_interfaces( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([42, 222, 56, 128], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSelectors` (0x916a17c6) function - pub fn target_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([145, 106, 23, 198], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSenders` (0x3e5e3c23) function - pub fn target_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([62, 94, 60, 35], ()) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `log` event - pub fn log_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogFilter> { - self.0.event() - } - ///Gets the contract's `log_address` event - pub fn log_address_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogAddressFilter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_1_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray1Filter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_2_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray2Filter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_3_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray3Filter, - > { - self.0.event() - } - ///Gets the contract's `log_bytes` event - pub fn log_bytes_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogBytesFilter, - > { - self.0.event() - } - ///Gets the contract's `log_bytes32` event - pub fn log_bytes_32_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogBytes32Filter, - > { - self.0.event() - } - ///Gets the contract's `log_int` event - pub fn log_int_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogIntFilter> { - self.0.event() - } - ///Gets the contract's `log_named_address` event - pub fn log_named_address_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedAddressFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_1_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray1Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_2_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray2Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_3_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray3Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_bytes` event - pub fn log_named_bytes_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedBytesFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_bytes32` event - pub fn log_named_bytes_32_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedBytes32Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_decimal_int` event - pub fn log_named_decimal_int_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedDecimalIntFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_decimal_uint` event - pub fn log_named_decimal_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedDecimalUintFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_int` event - pub fn log_named_int_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedIntFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_string` event - pub fn log_named_string_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedStringFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_uint` event - pub fn log_named_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedUintFilter, - > { - self.0.event() - } - ///Gets the contract's `log_string` event - pub fn log_string_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogStringFilter, - > { - self.0.event() - } - ///Gets the contract's `log_uint` event - pub fn log_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogUintFilter> { - self.0.event() - } - ///Gets the contract's `logs` event - pub fn logs_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogsFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNormalSetUpEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for LogNormalSetUp { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `BisectionLib_InvalidBounds` with signature `BisectionLib_InvalidBounds(uint256,uint256)` and selector `0x6105bfb6` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "BisectionLib_InvalidBounds", - abi = "BisectionLib_InvalidBounds(uint256,uint256)" - )] - pub struct BisectionLib_InvalidBounds { - pub lower: ::ethers::core::types::U256, - pub upper: ::ethers::core::types::U256, - } - ///Custom Error type `BisectionLib_RootOutsideBounds` with signature `BisectionLib_RootOutsideBounds(int256,int256)` and selector `0x1bc6f974` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "BisectionLib_RootOutsideBounds", - abi = "BisectionLib_RootOutsideBounds(int256,int256)" - )] - pub struct BisectionLib_RootOutsideBounds { - pub lower_result: ::ethers::core::types::I256, - pub upper_result: ::ethers::core::types::I256, - } - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Min", abi = "Min()")] - pub struct Min; - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LogNormalSetUpErrors { - BisectionLib_InvalidBounds(BisectionLib_InvalidBounds), - BisectionLib_RootOutsideBounds(BisectionLib_RootOutsideBounds), - Infinity(Infinity), - Min(Min), - NegativeInfinity(NegativeInfinity), - OutOfBounds(OutOfBounds), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for LogNormalSetUpErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BisectionLib_InvalidBounds(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BisectionLib_RootOutsideBounds(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Min(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::OutOfBounds(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LogNormalSetUpErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::BisectionLib_InvalidBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::BisectionLib_RootOutsideBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Infinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeInfinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::OutOfBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for LogNormalSetUpErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for LogNormalSetUpErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::BisectionLib_InvalidBounds(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::BisectionLib_RootOutsideBounds(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::Min(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for LogNormalSetUpErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for LogNormalSetUpErrors { - fn from(value: BisectionLib_InvalidBounds) -> Self { - Self::BisectionLib_InvalidBounds(value) - } - } - impl ::core::convert::From for LogNormalSetUpErrors { - fn from(value: BisectionLib_RootOutsideBounds) -> Self { - Self::BisectionLib_RootOutsideBounds(value) - } - } - impl ::core::convert::From for LogNormalSetUpErrors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for LogNormalSetUpErrors { - fn from(value: Min) -> Self { - Self::Min(value) - } - } - impl ::core::convert::From for LogNormalSetUpErrors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for LogNormalSetUpErrors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log", abi = "log(string)")] - pub struct LogFilter(pub ::std::string::String); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_address", abi = "log_address(address)")] - pub struct LogAddressFilter(pub ::ethers::core::types::Address); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(uint256[])")] - pub struct LogArray1Filter { - pub val: ::std::vec::Vec<::ethers::core::types::U256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(int256[])")] - pub struct LogArray2Filter { - pub val: ::std::vec::Vec<::ethers::core::types::I256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(address[])")] - pub struct LogArray3Filter { - pub val: ::std::vec::Vec<::ethers::core::types::Address>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_bytes", abi = "log_bytes(bytes)")] - pub struct LogBytesFilter(pub ::ethers::core::types::Bytes); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_bytes32", abi = "log_bytes32(bytes32)")] - pub struct LogBytes32Filter(pub [u8; 32]); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_int", abi = "log_int(int256)")] - pub struct LogIntFilter(pub ::ethers::core::types::I256); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_address", abi = "log_named_address(string,address)")] - pub struct LogNamedAddressFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,uint256[])")] - pub struct LogNamedArray1Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::U256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,int256[])")] - pub struct LogNamedArray2Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::I256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,address[])")] - pub struct LogNamedArray3Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::Address>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_bytes", abi = "log_named_bytes(string,bytes)")] - pub struct LogNamedBytesFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_bytes32", abi = "log_named_bytes32(string,bytes32)")] - pub struct LogNamedBytes32Filter { - pub key: ::std::string::String, - pub val: [u8; 32], - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "log_named_decimal_int", - abi = "log_named_decimal_int(string,int256,uint256)" - )] - pub struct LogNamedDecimalIntFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::I256, - pub decimals: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "log_named_decimal_uint", - abi = "log_named_decimal_uint(string,uint256,uint256)" - )] - pub struct LogNamedDecimalUintFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::U256, - pub decimals: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_int", abi = "log_named_int(string,int256)")] - pub struct LogNamedIntFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_string", abi = "log_named_string(string,string)")] - pub struct LogNamedStringFilter { - pub key: ::std::string::String, - pub val: ::std::string::String, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_uint", abi = "log_named_uint(string,uint256)")] - pub struct LogNamedUintFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_string", abi = "log_string(string)")] - pub struct LogStringFilter(pub ::std::string::String); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_uint", abi = "log_uint(uint256)")] - pub struct LogUintFilter(pub ::ethers::core::types::U256); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "logs", abi = "logs(bytes)")] - pub struct LogsFilter(pub ::ethers::core::types::Bytes); - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LogNormalSetUpEvents { - LogFilter(LogFilter), - LogAddressFilter(LogAddressFilter), - LogArray1Filter(LogArray1Filter), - LogArray2Filter(LogArray2Filter), - LogArray3Filter(LogArray3Filter), - LogBytesFilter(LogBytesFilter), - LogBytes32Filter(LogBytes32Filter), - LogIntFilter(LogIntFilter), - LogNamedAddressFilter(LogNamedAddressFilter), - LogNamedArray1Filter(LogNamedArray1Filter), - LogNamedArray2Filter(LogNamedArray2Filter), - LogNamedArray3Filter(LogNamedArray3Filter), - LogNamedBytesFilter(LogNamedBytesFilter), - LogNamedBytes32Filter(LogNamedBytes32Filter), - LogNamedDecimalIntFilter(LogNamedDecimalIntFilter), - LogNamedDecimalUintFilter(LogNamedDecimalUintFilter), - LogNamedIntFilter(LogNamedIntFilter), - LogNamedStringFilter(LogNamedStringFilter), - LogNamedUintFilter(LogNamedUintFilter), - LogStringFilter(LogStringFilter), - LogUintFilter(LogUintFilter), - LogsFilter(LogsFilter), - } - impl ::ethers::contract::EthLogDecode for LogNormalSetUpEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = LogFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogFilter(decoded)); - } - if let Ok(decoded) = LogAddressFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogAddressFilter(decoded)); - } - if let Ok(decoded) = LogArray1Filter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogArray1Filter(decoded)); - } - if let Ok(decoded) = LogArray2Filter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogArray2Filter(decoded)); - } - if let Ok(decoded) = LogArray3Filter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogArray3Filter(decoded)); - } - if let Ok(decoded) = LogBytesFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogBytesFilter(decoded)); - } - if let Ok(decoded) = LogBytes32Filter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogBytes32Filter(decoded)); - } - if let Ok(decoded) = LogIntFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedAddressFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogNamedAddressFilter(decoded)); - } - if let Ok(decoded) = LogNamedArray1Filter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogNamedArray1Filter(decoded)); - } - if let Ok(decoded) = LogNamedArray2Filter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogNamedArray2Filter(decoded)); - } - if let Ok(decoded) = LogNamedArray3Filter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogNamedArray3Filter(decoded)); - } - if let Ok(decoded) = LogNamedBytesFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogNamedBytesFilter(decoded)); - } - if let Ok(decoded) = LogNamedBytes32Filter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogNamedBytes32Filter(decoded)); - } - if let Ok(decoded) = LogNamedDecimalIntFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogNamedDecimalIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedDecimalUintFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogNamedDecimalUintFilter(decoded)); - } - if let Ok(decoded) = LogNamedIntFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogNamedIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedStringFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogNamedStringFilter(decoded)); - } - if let Ok(decoded) = LogNamedUintFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogNamedUintFilter(decoded)); - } - if let Ok(decoded) = LogStringFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogStringFilter(decoded)); - } - if let Ok(decoded) = LogUintFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogUintFilter(decoded)); - } - if let Ok(decoded) = LogsFilter::decode_log(log) { - return Ok(LogNormalSetUpEvents::LogsFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for LogNormalSetUpEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::LogFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogAddressFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray1Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray2Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray3Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogBytesFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogBytes32Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogIntFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogNamedAddressFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray1Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray2Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray3Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedBytesFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedBytes32Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedDecimalIntFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedDecimalUintFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedIntFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogNamedStringFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedUintFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogStringFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogUintFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogsFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogFilter) -> Self { - Self::LogFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogAddressFilter) -> Self { - Self::LogAddressFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogArray1Filter) -> Self { - Self::LogArray1Filter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogArray2Filter) -> Self { - Self::LogArray2Filter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogArray3Filter) -> Self { - Self::LogArray3Filter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogBytesFilter) -> Self { - Self::LogBytesFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogBytes32Filter) -> Self { - Self::LogBytes32Filter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogIntFilter) -> Self { - Self::LogIntFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogNamedAddressFilter) -> Self { - Self::LogNamedAddressFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogNamedArray1Filter) -> Self { - Self::LogNamedArray1Filter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogNamedArray2Filter) -> Self { - Self::LogNamedArray2Filter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogNamedArray3Filter) -> Self { - Self::LogNamedArray3Filter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogNamedBytesFilter) -> Self { - Self::LogNamedBytesFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogNamedBytes32Filter) -> Self { - Self::LogNamedBytes32Filter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogNamedDecimalIntFilter) -> Self { - Self::LogNamedDecimalIntFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogNamedDecimalUintFilter) -> Self { - Self::LogNamedDecimalUintFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogNamedIntFilter) -> Self { - Self::LogNamedIntFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogNamedStringFilter) -> Self { - Self::LogNamedStringFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogNamedUintFilter) -> Self { - Self::LogNamedUintFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogStringFilter) -> Self { - Self::LogStringFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogUintFilter) -> Self { - Self::LogUintFilter(value) - } - } - impl ::core::convert::From for LogNormalSetUpEvents { - fn from(value: LogsFilter) -> Self { - Self::LogsFilter(value) - } - } - ///Container type for all input parameters for the `IS_TEST` function with signature `IS_TEST()` and selector `0xfa7626d4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "IS_TEST", abi = "IS_TEST()")] - pub struct IsTestCall; - ///Container type for all input parameters for the `POOL_ID` function with signature `POOL_ID()` and selector `0xe0d7d0e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "POOL_ID", abi = "POOL_ID()")] - pub struct PoolIdCall; - ///Container type for all input parameters for the `TEST_SWAP_FEE` function with signature `TEST_SWAP_FEE()` and selector `0x620a2607` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "TEST_SWAP_FEE", abi = "TEST_SWAP_FEE()")] - pub struct TestSwapFeeCall; - ///Container type for all input parameters for the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeArtifacts", abi = "excludeArtifacts()")] - pub struct ExcludeArtifactsCall; - ///Container type for all input parameters for the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeContracts", abi = "excludeContracts()")] - pub struct ExcludeContractsCall; - ///Container type for all input parameters for the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeSenders", abi = "excludeSenders()")] - pub struct ExcludeSendersCall; - ///Container type for all input parameters for the `failed` function with signature `failed()` and selector `0xba414fa6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "failed", abi = "failed()")] - pub struct FailedCall; - ///Container type for all input parameters for the `getPoolLiquidityToken` function with signature `getPoolLiquidityToken(uint256)` and selector `0xe21485ad` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolLiquidityToken", abi = "getPoolLiquidityToken(uint256)")] - pub struct GetPoolLiquidityTokenCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `setUp` function with signature `setUp()` and selector `0x0a9254e4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setUp", abi = "setUp()")] - pub struct SetUpCall; - ///Container type for all input parameters for the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifactSelectors", abi = "targetArtifactSelectors()")] - pub struct TargetArtifactSelectorsCall; - ///Container type for all input parameters for the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifacts", abi = "targetArtifacts()")] - pub struct TargetArtifactsCall; - ///Container type for all input parameters for the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetContracts", abi = "targetContracts()")] - pub struct TargetContractsCall; - ///Container type for all input parameters for the `targetInterfaces` function with signature `targetInterfaces()` and selector `0x2ade3880` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetInterfaces", abi = "targetInterfaces()")] - pub struct TargetInterfacesCall; - ///Container type for all input parameters for the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSelectors", abi = "targetSelectors()")] - pub struct TargetSelectorsCall; - ///Container type for all input parameters for the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSenders", abi = "targetSenders()")] - pub struct TargetSendersCall; - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LogNormalSetUpCalls { - IsTest(IsTestCall), - PoolId(PoolIdCall), - TestSwapFee(TestSwapFeeCall), - ExcludeArtifacts(ExcludeArtifactsCall), - ExcludeContracts(ExcludeContractsCall), - ExcludeSenders(ExcludeSendersCall), - Failed(FailedCall), - GetPoolLiquidityToken(GetPoolLiquidityTokenCall), - SetUp(SetUpCall), - TargetArtifactSelectors(TargetArtifactSelectorsCall), - TargetArtifacts(TargetArtifactsCall), - TargetContracts(TargetContractsCall), - TargetInterfaces(TargetInterfacesCall), - TargetSelectors(TargetSelectorsCall), - TargetSenders(TargetSendersCall), - } - impl ::ethers::core::abi::AbiDecode for LogNormalSetUpCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::IsTest(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PoolId(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestSwapFee(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeArtifacts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeContracts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeSenders(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Failed(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPoolLiquidityToken(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SetUp(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetArtifactSelectors(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetArtifacts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetContracts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetInterfaces(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetSelectors(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetSenders(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LogNormalSetUpCalls { - fn encode(self) -> Vec { - match self { - Self::IsTest(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PoolId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TestSwapFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Failed(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolLiquidityToken(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetUp(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TargetArtifactSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetInterfaces(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for LogNormalSetUpCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::IsTest(element) => ::core::fmt::Display::fmt(element, f), - Self::PoolId(element) => ::core::fmt::Display::fmt(element, f), - Self::TestSwapFee(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeSenders(element) => ::core::fmt::Display::fmt(element, f), - Self::Failed(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolLiquidityToken(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SetUp(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetArtifactSelectors(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TargetArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetInterfaces(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSelectors(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSenders(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: IsTestCall) -> Self { - Self::IsTest(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: PoolIdCall) -> Self { - Self::PoolId(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: TestSwapFeeCall) -> Self { - Self::TestSwapFee(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: ExcludeArtifactsCall) -> Self { - Self::ExcludeArtifacts(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: ExcludeContractsCall) -> Self { - Self::ExcludeContracts(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: ExcludeSendersCall) -> Self { - Self::ExcludeSenders(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: FailedCall) -> Self { - Self::Failed(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: GetPoolLiquidityTokenCall) -> Self { - Self::GetPoolLiquidityToken(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: SetUpCall) -> Self { - Self::SetUp(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: TargetArtifactSelectorsCall) -> Self { - Self::TargetArtifactSelectors(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: TargetArtifactsCall) -> Self { - Self::TargetArtifacts(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: TargetContractsCall) -> Self { - Self::TargetContracts(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: TargetInterfacesCall) -> Self { - Self::TargetInterfaces(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: TargetSelectorsCall) -> Self { - Self::TargetSelectors(value) - } - } - impl ::core::convert::From for LogNormalSetUpCalls { - fn from(value: TargetSendersCall) -> Self { - Self::TargetSenders(value) - } - } - ///Container type for all return fields from the `IS_TEST` function with signature `IS_TEST()` and selector `0xfa7626d4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IsTestReturn(pub bool); - ///Container type for all return fields from the `POOL_ID` function with signature `POOL_ID()` and selector `0xe0d7d0e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PoolIdReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `TEST_SWAP_FEE` function with signature `TEST_SWAP_FEE()` and selector `0x620a2607` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TestSwapFeeReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeArtifactsReturn { - pub excluded_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeContractsReturn { - pub excluded_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeSendersReturn { - pub excluded_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `failed` function with signature `failed()` and selector `0xba414fa6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct FailedReturn(pub bool); - ///Container type for all return fields from the `getPoolLiquidityToken` function with signature `getPoolLiquidityToken(uint256)` and selector `0xe21485ad` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolLiquidityTokenReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactSelectorsReturn { - pub targeted_artifact_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactsReturn { - pub targeted_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetContractsReturn { - pub targeted_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `targetInterfaces` function with signature `targetInterfaces()` and selector `0x2ade3880` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetInterfacesReturn { - pub targeted_interfaces: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSelectorsReturn { - pub targeted_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSendersReturn { - pub targeted_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } -} diff --git a/crates/bindings/src/log_normal_solver.rs b/crates/bindings/src/log_normal_solver.rs deleted file mode 100644 index 66cd08a73..000000000 --- a/crates/bindings/src/log_normal_solver.rs +++ /dev/null @@ -1,3398 +0,0 @@ -pub use log_normal_solver::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod log_normal_solver { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_strategy"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("BISECTION_EPSILON"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("BISECTION_EPSILON"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("MAX_BISECTION_ITERS"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "MAX_BISECTION_ITERS", - ), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("allocateGivenX"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allocateGivenX"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("allocateGivenY"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allocateGivenY"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("calculateDiffLower"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("calculateDiffLower"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("v"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("calculateDiffRaise"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("calculateDiffRaise"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("v"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("computeOptimalArbLowerPrice"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "computeOptimalArbLowerPrice", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("vUpper"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("computeOptimalArbRaisePrice"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "computeOptimalArbRaisePrice", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("vUpper"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("deallocateGivenX"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("deallocateGivenX"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("deallocateGivenY"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("deallocateGivenY"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("fetchPoolParams"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("fetchPoolParams"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Address, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct LogNormal.LogNormalParams", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getInitialPoolData"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getInitialPoolData"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("rx"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("params"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Address, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct LogNormal.LogNormalParams", - ), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getNextLiquidity"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getNextLiquidity"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("rx"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("ry"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("L"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getNextReserveX"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getNextReserveX"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("ry"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("L"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getNextReserveY"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getNextReserveY"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("rx"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("L"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("S"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPriceGivenXL"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getPriceGivenXL"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("rx"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("L"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("price"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPriceGivenYL"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getPriceGivenYL"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("ry"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("L"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("price"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getReservesAndLiquidity"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "getReservesAndLiquidity", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("internalPrice"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("internalPrice"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("price"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("prepareControllerUpdate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "prepareControllerUpdate", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("controller"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("prepareFeeUpdate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("prepareFeeUpdate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("swapFee"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("prepareSigmaUpdate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("prepareSigmaUpdate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetSigma"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetTimestamp"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("prepareStrikeUpdate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "prepareStrikeUpdate", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetStrike"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetTimestamp"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("prepareTauUpdate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("prepareTauUpdate"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetTau"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetTimestamp"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("simulateSwap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("simulateSwap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("swapXIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("strategy"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("strategy"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("BisectionLib_InvalidBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "BisectionLib_InvalidBounds", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("lower"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("upper"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("BisectionLib_RootOutsideBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "BisectionLib_RootOutsideBounds", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("lowerResult"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("upperResult"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Infinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Infinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Min"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Min"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NegativeInfinity"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("OutOfBounds"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("OutOfBounds"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static LOGNORMALSOLVER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4b\0\0\xECW`@Q`\x1Fb\0;\x878\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17b\0\0\xD6W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12b\0\0\x86WQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x90\x81\x90\x03b\0\0\x81W`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x90\x91\x17\x90U`@Qa:M\x90\x81b\0\x01:\x829\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\x0C\x1CW`\x005`\xE0\x1C\x80c\x04 X\n\x14a\x01\xACW\x80c\x12\x06I\xC5\x14a\x01\xA7W\x80c\x13N\xAD\x12\x14a\x01\xA2W\x80c\x1E\x97\x8C\xB0\x14a\x01\x9DW\x80c0m\xB4k\x14a\x01\x98W\x80c3\"f\xF3\x14a\x01\x93W\x80c9(\xFF\x97\x14a\x01\x8EW\x80c;&\x8D]\x14a\x01\x89W\x80c;M\x100\x14a\x01\x84W\x80cN\x81\x7F\xD9\x14a\x01\x7FW\x80cO\xD6|X\x14a\x01zW\x80c^\xB4\x08\xFC\x14a\x01uW\x80cb7V\x9F\x14a\x01pW\x80cme\"\x99\x14a\x01kW\x80c\x7F\x17@\x9C\x14a\x01fW\x80c\x81\xB5\xFA\xC2\x14a\x01aW\x80c\x90.\xCA\xA2\x14a\x01\\W\x80c\xA8\xC6.v\x14a\x01WW\x80c\xAFNC\x7F\x14a\x01RW\x80c\xB0\x9D\x04\xE5\x14a\x01MW\x80c\xCB\x1FU2\x14a\x01HW\x80c\xCE\x15;\xF4\x14a\x01CW\x80c\xE9G\x16\xD5\x14a\x01>W\x80c\xEE>\x8C\xFB\x14a\x019W\x80c\xF3\r7\xF2\x14a\x014Wc\xF9\xC2\x82\x11\x03a\x0C\x1CWa\x0C\0V[a\x0B\xD0V[a\x0B\x9FV[a\x0BdV[a\x0B(V[a\n\xE3V[a\n\xB0V[a\n\x94V[a\nkV[a\nBV[a\n\x15V[a\tsV[a\tWV[a\x08\xEAV[a\x08\xCEV[a\x08\xA5V[a\x08\x89V[a\x08ZV[a\x08\x1FV[a\x05\x82V[a\x05+V[a\x04\xFCV[a\x04\xD7V[a\x04DV[a\x03(V[a\x02\xADV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\0[\x83\x81\x10a\x02dWPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01a\x02TV[\x90` \x91a\x02\x8D\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01a\x02QV[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90` a\x02\xAA\x92\x81\x81R\x01\x90a\x02tV[\x90V[4a\x03\x05W`@6`\x03\x19\x01\x12a\x03\0Wa\x02\xFC`@Q`\x02` \x82\x01R`\x045`@\x82\x01R`$5``\x82\x01R``\x81Ra\x02\xE8\x81a\x03\xD4V[`@Q\x91\x82\x91` \x83R` \x83\x01\x90a\x02tV[\x03\x90\xF3[a\x02\x01V[a\x01\xB1V[`\x80\x90`\x03\x19\x01\x12a\x03\0W`\x045\x90`$5\x90`D5\x90`d5\x90V[4a\x03\x05W` a\x03Da\x03;6a\x03\nV[\x92\x91\x90\x91a\r\x04V[`@Q\x90\x81R\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\xA0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[a\x03\x9DV[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[``\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04?WV[`\0\x80\xFD[4a\x03\x05W`\xE06`\x03\x19\x01\x12a\x03\0W`\xA06`C\x19\x01\x12a\x04\xB8Wa\x02\xFCa\x04\xAC`@Qa\x04s\x81a\x03\xB3V[`D5\x81R`d5` \x82\x01R`\x845`@\x82\x01R`\xA45``\x82\x01R`\xC45a\x04\x9C\x81a\x04.V[`\x80\x82\x01R`$5`\x045a\x16\xB0V[`@Q\x91\x82\x91\x82a\x02\x99V[a\x03LV[``\x90`\x03\x19\x01\x12a\x03\0W`\x045\x90`$5\x90`D5\x90V[4a\x03\x05W` a\x03Da\x04\xF6a\x04\xED6a\x04\xBDV[\x91\x92\x90\x92a\x12+V[\x91a\x18\x99V[4a\x03\x05W` a\x03Da\x05\x0F6a\x04\xBDV[\x90a\x05\"a\x05\x1C\x84a\x12+V[\x93a\x13\xB2V[\x92\x91\x90\x91a\x19\x86V[4a\x03\x05W` a\x03Da\x05>6a\x04\xBDV[\x90a\x05Ka\x05\x1C\x84a\x12+V[\x92\x90Pa\x1C\xF0V[\x80\x15\x15\x03a\x04?WV[\x90\x92`\x80\x92a\x02\xAA\x95\x94\x15\x15\x83R` \x83\x01R`@\x82\x01R\x81``\x82\x01R\x01\x90a\x02tV[4a\x03\x05W``6`\x03\x19\x01\x12a\x03\0W`$5`\x045a\x05\xA2\x82a\x05SV[`D5\x90a\x05\xF5a\x05\xB1a\r\xFBV[\x92a\x05\xBAa\r\xFBV[\x93a\x05\xC4\x84a\x13\xB2V[` \x84\x99\x93\x95\x92\x99\x01\x94`@\x99\x8A\x86\x01\x92\x83R\x86R\x84Ra\x05\xE4\x87a\x12+V[\x95\x86\x91\x85Q\x90\x87Q\x90Q\x91\x8Aa\x12\xD9V[\x92\x15a\x07\x97W\x92\x82a\x06=\x90\xFD[\x90\x91\x92a\r\x1B\x90a\r\x14\x83a\x12+V[\x90\x85a\x14\xABV[\x90`@Q\x93a\rR\x85a\rD\x83\x86\x88` \x85\x01`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x03`\x1F\x19\x81\x01\x87R\x86a\x04\x0CV[`\0Ta\ri\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92Wa\r\x92\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\r\xB9W[Pa\r\xB3\x90a\x12+V[\x93a\x14\xF9V[a\r\xB3\x91\x93Pa\r\xE0\x90` =` \x11a\r\xE7W[a\r\xD8\x81\x83a\x04\x0CV[\x81\x01\x90a\x0C\xD2V[\x92\x90a\r\xA9V[P=a\r\xCEV[\x91a\x04\xF6a\x02\xAA\x93a\x12+V[`@Q\x90``\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@R`\0`@\x83\x82\x81R\x82` \x82\x01R\x01RV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90`\x01\x82\x01\x80\x92\x11a\x0EOWV[a\x0E+V[\x91\x90\x82\x01\x80\x92\x11a\x0EOWV[\x15a\x0EhWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: x reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x0EOWV[\x91\x90\x82\x03\x91\x82\x11a\x0EOWV[\x15a\x0E\xDCWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: y reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xC0\x91\x03\x12a\x03\0W\x81Qa\x0FC\x81a\x05SV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[a\x02\xAA\x93\x92``\x92`\x01\x80`\xA0\x1B\x03\x16\x82R` \x82\x01R\x81`@\x82\x01R\x01\x90a\x02tV[\x91a\x08\x9Fa\x02\xAA\x93a\x12+V[\x90\x91\x92a\x0F\xAB\x90a\x0F\xA4\x83a\x12+V[\x90\x85a!:V[\x90`@Q\x93a\x0F\xD4\x85a\rD\x83\x87\x87` \x85\x01`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`\0Ta\x0F\xEB\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92Wa\x10\x14\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\x10;W[Pa\x105\x90a\x12+V[\x93a!gV[a\x105\x91\x93Pa\x10Y\x90` =` \x11a\r\xE7Wa\r\xD8\x81\x83a\x04\x0CV[\x92\x90a\x10+V[\x91\x90` \x92\x83\x81\x83\x03\x12a\x03\0W\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x82\x11a\x11xW\x01\x82`\x1F\x82\x01\x12\x15a\x11\x1FW\x80Q\x91\x82\x11a\x03\xCFW`@Q\x92a\x10\xAD`\x1F\x84\x01`\x1F\x19\x16\x87\x01\x85a\x04\x0CV[\x82\x84R\x85\x83\x83\x01\x01\x11a\x10\xCAW\x84\x83\x94\x95a\x02\xAA\x94\x01\x91\x01a\x02QV[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x87\x90R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xA0\x91\x03\x12a\x04\xB8W`@Qa\x11\xE0\x81a\x03\xB3V[`\x80\x80\x82\x94\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R``\x81\x01Q``\x85\x01R\x01Q\x91a\x12\x13\x83a\x04.V[\x01RV[\x90`\xA0\x82\x82\x03\x12a\x03\0Wa\x02\xAA\x91a\x11\xC8V[`\x80\x90`@Qa\x12:\x81a\x03\xB3V[`\0\x92\x81\x84\x80\x93R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x01Ra\x12la\x06\xE4a\x06\xE4\x84T`\x01\x80`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07\x92W`@Qc\xDC\x17\x83U`\xE0\x1B\x81R`\x04\x81\x01\x92\x90\x92R\x82\x90\x82\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07\x8DW\x82a\x02\xAA\x93\x92a\x12\xB6W[PP` \x80\x82Q\x83\x01\x01\x91\x01a\x12\x17V[a\x12\xD2\x92P=\x80\x91\x83>a\x12\xCA\x81\x83a\x04\x0CV[\x81\x01\x90a\x10`V[8\x80a\x12\xA5V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x84\x90R``\x81\x01\x85\x90R\x93\x91\x92a\x13\x01\x85`\x80\x81\x01a\rDV[`\0T`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07\x92Wa\x136\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\x13]W[Pa\x13W\x90a\x12+V[\x93a$\xF7V[a\x13W\x91\x93Pa\x13{\x90` =` \x11a\r\xE7Wa\r\xD8\x81\x83a\x04\x0CV[\x92\x90a\x13MV[\x90\x81` \x91\x03\x12a\x03\0WQa\x02\xAA\x81a\x04.V[\x90\x81``\x91\x03\x12a\x03\0W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`\0T\x90\x91\x90a\x13\xCC\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92W` `\x04\x91`@Q\x92\x83\x80\x92c+\xEE\x84\xF1`\xE2\x1B\x82RZ\xFA\x90\x81\x15a\x07\x8DW`\0\x91a\x14|W[P`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07\x92W`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x93\x90\x93R``\x90\x83\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07\x8DW`\0\x80\x93`\0\x93a\x14EW[P\x92\x91\x90V[\x91\x93PPa\x14k\x91P``=``\x11a\x14uW[a\x14c\x81\x83a\x04\x0CV[\x81\x01\x90a\x13\x97V[\x92\x90\x92\x918a\x14?V[P=a\x14YV[a\x14\x9E\x91P` =` \x11a\x14\xA4W[a\x14\x96\x81\x83a\x04\x0CV[\x81\x01\x90a\x13\x82V[8a\x13\xFAV[P=a\x14\x8CV[a\x06#\x90a\x14\xCDa\x14\xC8a\x14\xC3\x86a\x02\xAA\x97\x96a&MV[a&\xC2V[a&\xF5V[\x92Qa(\xE5V[a\x14\xF7\x93``\x92\x96\x95\x93a\x01\0\x83\x01\x97\x83R` \x83\x01R`@\x82\x01R\x01\x90a\t\xDFV[V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a\x16}W[\x85\x85\x12a\x16^W\x90a\x15,a\x15:\x92[`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x03`\x1F\x19\x81\x01\x83R\x82a\x04\x0CV[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa\x15P\x81\x85a6\xC2V[\x92a\x15[\x81\x86a6\xC2V[\x88a\x15f\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a\x15z\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a\x15\x95W[PPPPPPPPPP\x90V[\x15a\x15\xF6W[P\x86\x97\x98P\x81\x92a\x15\xB5a\x15\xAF\x8B\x89a\x0ETV[`\x01\x1C\x90V[\x99a\x15\xC0\x8B\x88a6\xC2V[\x90\x84a\x15\xCC\x88\x84a\x18EV[\x13a\x15\xEAWPP\x89\x93[\x88a\x15\xE1\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a\x15\x83V[\x8B\x98P\x90\x95P\x93a\x15\xD6V[`\x14\x10\x80a\x16\x11W[\x15a\x16\nW\x88a\x15\x9BV[\x80\x80a\x15\x88V[P\x80\x83\x10a\x15\xFFV[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x86\x90R`$\x81\x01\x91\x90\x91R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81R`\x04\x81\x01\x91\x90\x91R`$\x81\x01\x92\x90\x92RP`D\x90\xFD[\x93P\x91a\x16j\x90a)\x11V[\x91a\x16w\x84\x83\x85\x84a'\xECV[\x93a\x15\nV[\x85\x85\x13a\x16\x91W\x90a\x15,a\x15:\x92a\x15\x1AV[\x93P\x94a\x16\x9D\x90a'8V[\x94a\x16\xAA\x84\x83\x88\x84a'\xECV[\x93a\x16}V[\x91a\x16\xC1a\x14\xC8a\x14\xC3\x83\x85a2\x87V[\x91g\r\xE0\xB6\xB3\xA7d\0\0\x92\x83\x03\x92\x83\x11a\x0EOWa\x17\x18\x82a\x17\x04a\x16\xF9a\x14\xC8a\x14\xC3\x84a\x16\xF3a\x176\x9A\x8Ca);V[\x97a&MV[a\x06#\x85\x84Qa(\xE5V[\x92a\x17\x11\x82\x82\x86\x8Aa'\xECV[\x84\x88a$\xF7V[\x90`@Q\x94` \x86\x01R`@\x85\x01R``\x84\x01R`\x80\x83\x01\x90a\t\xDFV[a\x01\0\x81Ra\x01 \x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@R\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x0EOWV[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x0EOWV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\x0EOWV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x0EOWV[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x90g\x1B\xC1mgN\xC8\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\x0EOW`\0\x19\x83\x05\x03a\x0EOWV[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\x0EOW\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x81\x15a\x18\x83W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\x0EOW\x05\x90V[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[\x91\x90\x91a\x18\xD4` \x83\x01\x93a\x18\xCE\x85Qa\x18\xC6a\x18\xBC`@\x88\x01\x92\x83Q\x90a+\x86V[\x97Q\x82Q\x90a+\xAFV[\x90Q\x90a'WV[\x92a'xV[\x92g\r\xE0\xB6\xB3\xA7d\0\0\x80\x85\x12\x15a\x19RW`\0\x85\x13\x15a\x19GW`\0\x85\x82\x03\x95\x12\x81\x86\x12\x81\x16\x91\x86\x13\x90\x15\x16\x17a\x0EOWa\x19;a\x19@\x92a\x196a\x19(a\x14\xC8\x94a\x19#a\x02\xAA\x99a+\xCEV[a\x18EV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x17\xB8V[a,ZV[\x90Qa(\xE5V[PPPPP`\0\x19\x90V[PPPPP`\0\x90V[\x90\x95\x94\x92\x93a\x14\xF7\x94`\x80\x93a\x01 \x84\x01\x98\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01\x90a\t\xDFV[\x90\x92\x91\x82\x86Q` \x88\x01Q`@\x89\x01Q\x90``\x8A\x01Q\x92a\x19\xA6\x83a.\x0BV[a\x19\xAF\x90a\x1BpV[\x93a\x19\xB9\x90a\x17YV[\x90a\x19\xC3\x8Aa.\xC9V[a\x19\xCC\x8Ba\x1C\x97V[a\x19\xD5\x91a/{V[a\x19\xDE\x8Ba\x1C\x97V[a\x19\xE7\x84a.\xF8V[a\x19\xF0\x91a\x17\xB8V[a\x19\xFA\x90\x88a/{V[a\x1A\x03\x91a/\xF8V[a\x1A\x0C\x90a0\x16V[\x93a\x1A\x16\x84a2\xFEV[a\x1A\x1F\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a\x1A3\x90a,ZV[\x90a\x1A=\x91a/{V[a\x1AF\x90a/\xAAV[a\x1AO\x90a\x1C\xDFV[\x84\x86a\x1AZ\x86a/LV[\x90a\x1Ad\x91a/{V[\x90a\x1An\x91a/{V[a\x1Aw\x91a\x1C\xC3V[a\x1A\x80\x90a,ZV[\x82a\x1A\x8B\x8C\x84a/{V[\x90a\x1A\x95\x91a/{V[a\x1A\x9E\x91a/{V[a\x1A\xA7\x8Ba\x1C\x97V[a\x1A\xB0\x84a.\xF8V[a\x1A\xB9\x91a\x17\xB8V[a\x1A\xC2\x91a/\xF8V[\x95a\x1A\xCC\x91a/{V[\x90a\x1A\xD6\x90a\x1C\xA9V[a\x1A\xDF\x91a/{V[\x92a\x1A\xE9\x91a/{V[a\x1A\xF2\x90a/\xD1V[\x90a\x1A\xFC\x91a\x17\xB8V[a\x1B\x05\x90a1gV[a\x1B\x0E\x91a/{V[a\x1B\x17\x86a.\xC9V[a\x1B \x91a/\xF8V[\x90a\x1B*\x84a\x1C\xDFV[\x90a\x1B4\x91a\x1C\xC3V[\x90a\x1B>\x91a\x1C\xC3V[`\0\x13a\x1BeWa\x02\xAA\x95a\x1B`\x93a\x15,\x92`@Q\x96\x87\x95` \x87\x01a\x19\\V[a)\x90V[PPPPPP`\0\x90V[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x15a\x0EOWV[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81a\x03\xE8\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\x0EOWV[`\x01`\xFF\x1B\x81\x14a\x0EOW`\0\x03\x90V[\x93\x92\x90\x91\x92\x80Q\x91` \x82\x01Q\x90`@\x83\x01Q\x92``\x01Q\x93a\x1D\x12\x84a.\x0BV[a\x1D\x1B\x90a\x1BpV[\x94a\x1D%\x90a\x17YV[\x91\x82a\x1D0\x88a.\xC9V[a\x1D:\x89\x84a\x1C\xC3V[a\x1DC\x91a/{V[a\x1DM\x89\x84a\x1C\xC3V[a\x1DW\x83\x85a/{V[a\x1D`\x91a\x17\xB8V[a\x1Dj\x90\x8Ba/{V[a\x1Ds\x91a/\xF8V[a\x1D|\x90a0\x16V[\x95a\x1D\x86\x86a2\xFEV[a\x1D\x8F\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a\x1D\xA3\x90a,ZV[\x90a\x1D\xAD\x91a/{V[a\x1D\xB6\x90a/\xAAV[a\x1D\xBF\x90a\x1C\xDFV[\x86\x88a\x1D\xCA\x88a/LV[\x90a\x1D\xD4\x91a/{V[\x90a\x1D\xDE\x91a/{V[a\x1D\xE7\x91a\x1C\xC3V[a\x1D\xF0\x90a,ZV[\x81a\x1D\xFB\x8A\x86a/{V[\x90a\x1E\x05\x91a/{V[a\x1E\x0E\x91a/{V[\x91a\x1E\x19\x89\x82a\x1C\xC3V[\x91a\x1E#\x91a/{V[a\x1E,\x91a\x17\xB8V[a\x1E5\x91a/\xF8V[\x96a\x1E?\x91a/{V[\x90a\x1EI\x90a\x1C\xA9V[a\x1ER\x91a/{V[\x92a\x1E\\\x91a/{V[a\x1Ee\x90a/\xD1V[\x90a\x1Eo\x91a\x17\xB8V[a\x1Ex\x90a1gV[a\x1E\x81\x91a/{V[\x90a\x1E\x8B\x90a.\xC9V[a\x1E\x94\x91a/\xF8V[\x91a\x1E\x9E\x90a\x1C\xDFV[\x90a\x1E\xA8\x91a\x1C\xC3V[\x90a\x02\xAA\x91a\x1C\xC3V[\x91\x90\x91a\x1E\xF0` \x83\x01\x91a\x1E\xEAa\x1E\xE2\x84Qa\x18\xC6a\x1E\xD8`@\x89\x01\x92\x83Q\x90a+\x86V[\x96Q\x82Q\x90a+\xAFV[\x95\x85Qa'WV[\x90a'xV[g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x82\x12\x15a\x19RW`\0\x82\x13\x15a\x19GWa\x02\xAA\x94a\x19@\x93a\x1F&a\x19;\x93a\x19#a\x14\xC8\x96a+\xCEV[\x05a\x1C\xC3V[\x90\x92\x91\x85Q` \x87\x01Q`@\x88\x01Q``\x89\x01Q\x91a\x1FJ\x82a.\x0BV[a\x1FS\x90a\x1BpV[\x92a\x1F]\x90a\x17YV[\x93a\x1Fg\x86a.\xC9V[a\x1Fp\x87a\x1C\x97V[a\x1Fy\x91a/{V[a\x1F\x83\x89\x83a/{V[a\x1F\x8C\x88a\x1C\x97V[a\x1F\x95\x91a/{V[a\x1F\x9E\x90a\x1C\xDFV[\x86a\x1F\xA9\x8B\x85a/{V[a\x1F\xB2\x90a/!V[\x90a\x1F\xBC\x91a/{V[a\x1F\xC5\x91a\x1C\xC3V[a\x1F\xCE\x91a/\xF8V[a\x1F\xD7\x90a\x1C\xDFV[a\x1F\xE0\x90a0\x16V[\x92a\x1F\xEA\x83a2\xFEV[a\x1F\xF3\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a \x07\x90a,ZV[\x90a \x11\x91a/{V[a \x1A\x90a/\xAAV[a #\x90a\x1C\xDFV[\x83\x85a .\x85a/LV[\x90a 8\x91a/{V[\x90a B\x91a/{V[a K\x91a\x1C\xC3V[a T\x90a,ZV[\x85a _\x88\x8Aa/{V[\x90a i\x91a/{V[a r\x91a/{V[\x90a |\x87a\x1C\x97V[a \x85\x87a.\xF8V[a \x8E\x91a\x17\xB8V[a \x97\x91a/{V[a \xA0\x91a/\xF8V[\x93a \xAB\x87\x89a/{V[\x90a \xB5\x90a\x1C\xA9V[a \xBE\x91a/{V[\x92a \xC8\x91a/{V[a \xD1\x90a/\xD1V[\x90a \xDB\x91a\x17\xB8V[a \xE4\x90a1gV[a \xED\x91a/{V[a \xF6\x83a.\xC9V[a \xFF\x91a/\xF8V[\x90a!\t\x90a\x1C\xA9V[\x90a!\x13\x91a\x1C\xC3V[`\0\x13a\x1BeWa\x02\xAA\x95a!5\x93a\x15,\x92`@Q\x96\x87\x95` \x87\x01a\x19\\V[a*\xAFV[\x91a\x14\xC3a\x14\xC8\x91a!K\x93a2\x87V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x03\x90\x81\x11a\x0EOWa\x02\xAA\x91a(\xE5V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a\"\x8AW[\x85\x85\x12a\"kW\x90a\x15,a!\x99\x92`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa!\xAF\x81\x85a6\xE3V[\x92a!\xBA\x81\x86a6\xE3V[\x88a!\xC5\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a!\xD9\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a!\xF3WPPPPPPPPPP\x90V[\x15a\"NW[P\x86\x97\x98P\x81\x92a\"\ra\x15\xAF\x8B\x89a\x0ETV[\x99a\"\x18\x8B\x88a6\xE3V[\x90\x84a\"$\x88\x84a\x18EV[\x13a\"BWPP\x89\x93[\x88a\"9\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a!\xE2V[\x8B\x98P\x90\x95P\x93a\".V[`\x14\x10\x80a\"bW[\x15a\x16\nW\x88a!\xF9V[P\x80\x83\x10a\"WV[\x93P\x91a\"w\x90a)\x11V[\x91a\"\x84\x84\x83\x83\x86a'\xECV[\x93a!xV[\x85\x85\x13a\"\x9EW\x90a\x15,a!\x99\x92a\x15\x1AV[\x93P\x94a\"\xAA\x90a'8V[\x94a\"\xB7\x84\x83\x83\x89a'\xECV[\x93a\"\x8AV[\x92\x91\x90a\"\xD3a\"\xCD\x82\x84a);V[\x85a(\xE5V[\x93\x81\x03\x90\x81\x11a\x0EOW\x92\x81\x03\x90\x81\x11a\x0EOW\x90V[\x92\x91\x90a\"\xFAa\"\xCD\x82\x84a);V[\x93\x81\x01\x80\x91\x11a\x0EOW\x92\x81\x01\x80\x91\x11a\x0EOW\x90V[\x93\x90\x92\x91\x81Q` \x83\x01Q\x91`@\x84\x01Q\x93``\x01Q\x94a#1\x85a.\x0BV[a#:\x90a\x1BpV[\x95a#D\x90a\x17YV[\x92\x83a#O\x89a.\xC9V[a#Y\x8A\x85a\x1C\xC3V[a#b\x91a/{V[a#l\x85\x84a/{V[a#v\x8B\x86a\x1C\xC3V[a#\x7F\x91a/{V[a#\x88\x90a\x1C\xDFV[\x82\x85a#\x94\x88\x87a/{V[\x90a#\x9E\x91a/{V[\x90a#\xA8\x91a/{V[a#\xB1\x91a\x1C\xC3V[a#\xBA\x91a/\xF8V[a#\xC3\x90a\x1C\xDFV[a#\xCC\x90a0\x16V[\x96a#\xD6\x87a2\xFEV[a#\xDF\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a#\xF3\x90a,ZV[\x90a#\xFD\x91a/{V[a$\x06\x90a/\xAAV[a$\x0F\x90a\x1C\xDFV[\x87\x89a$\x1A\x89a/LV[\x90a$$\x91a/{V[\x90a$.\x91a/{V[a$7\x91a\x1C\xC3V[a$@\x90a,ZV[\x81a$K\x8B\x8Da/{V[\x90a$U\x91a/{V[a$^\x91a/{V[\x92a$i\x8A\x82a\x1C\xC3V[\x91a$s\x91a/{V[a$|\x91a\x17\xB8V[a$\x85\x91a/{V[a$\x8E\x91a/\xF8V[\x96a$\x98\x91a/{V[\x90a$\xA2\x90a\x1C\xA9V[a$\xAB\x91a/{V[\x92a$\xB5\x91a/{V[a$\xBE\x90a/\xD1V[\x90a$\xC8\x91a\x17\xB8V[a$\xD1\x90a1gV[a$\xDA\x91a/{V[\x90a$\xE4\x90a.\xC9V[a$\xED\x91a/\xF8V[\x90a\x1E\xA8\x90a\x1C\xA9V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a&\x1AW[\x85\x85\x12a%\xFBW\x90a\x15,a%)\x92`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa%?\x81\x85a7\x05V[\x92a%J\x81\x86a7\x05V[\x88a%U\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a%i\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a%\x83WPPPPPPPPPP\x90V[\x15a%\xDEW[P\x86\x97\x98P\x81\x92a%\x9Da\x15\xAF\x8B\x89a\x0ETV[\x99a%\xA8\x8B\x88a7\x05V[\x90\x84a%\xB4\x88\x84a\x18EV[\x13a%\xD2WPP\x89\x93[\x88a%\xC9\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a%rV[\x8B\x98P\x90\x95P\x93a%\xBEV[`\x14\x10\x80a%\xF2W[\x15a\x16\nW\x88a%\x89V[P\x80\x83\x10a%\xE7V[\x93P\x94a&\x07\x90a'8V[\x94a&\x14\x84\x87\x84\x84a'\xECV[\x93a%\x08V[\x85\x85\x13a&.W\x90a\x15,a%)\x92a\x15\x1AV[\x93P\x91a&:\x90a)\x11V[\x91a&G\x84\x84\x84\x84a'\xECV[\x93a&\x1AV[a&\xBDa&\xB8a\x02\xAA\x93a&\xB2a&\xAD\x82Qa&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\x97a&\x92`@` \x8B\x01Q\x9A\x01Q\x96a&\x8C\x88\x8Ca+\x86V[\x9Da);V[a2\xFEV[\x97a2\xFEV[a\x17\xEEV[\x05a,ZV[a'WV[a'\x9AV[\x90a\x17\xB8V[a\x17\xD1V[a\x18hV[a&\xF1a&\xB8a&\xECg\x13\xA0K\xBD\xFD\xC9\xBE\x88a&\xE6g\x1B\xC1mgN\xC8\0\0\x95a\x17\xD1V[\x05a\x1C\xDFV[a1gV[\x05\x90V[`\0\x81\x12a'\0W\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x10`$\x82\x01RotoUint: negative`\x80\x1B`D\x82\x01R`d\x90\xFD[a\x03\xE7\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wa\x03\xE8\x90\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04?W\x04\x90V[g\x06\xF0[Y\xD3\xB2\0\0\x90\x80\x82\x02\x91\x82\x04\x14`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x04\x90V[\x90\x92\x82\x82\x10\x15a(\xA0Wa\x02\xAA\x93a(i\x92\x84g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82a(\x14\x83\x83a'xV[\x10a(\x8DWP`\x01`\x01`\xFF\x1B\x03\x95\x90P[\x83Q\x91a(WPP\x89\x92[\x87a*4\x88\x86a\x0E\xC8V[\x92\x01\x93\x99\x98a)\xDCV[\x8B\x97P\x90\x94P\x92a*)V[\x86\x10\x80a*dW[\x15a*]W\x88a)\xF3V[\x80\x80a)\xE1V[Pa\x01\0\x82\x10a*RV[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81Ra\x03\xE8`\x04\x82\x01R`$\x81\x01\x85\x90R`D\x90\xFD[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a*\x8EWa*\xCB\x81a8\x86V[a*\xD5\x85\x83a9\xF6V[`\0a*\xE1\x82\x84a\x18EV[\x13a*oWPa*\xF2\x85\x96\x95a\x0E\xB8V[`\x01\x94`\0\x91\x86\x80[a+\x0BWPPPPPPPP\x90PV[\x15a+hW[P\x85\x96\x97\x98P\x80\x91a+&a\x15\xAF\x8B\x88a\x0ETV[\x99a+1\x8B\x87a9\xF6V[\x90\x83a+=\x87\x84a\x18EV[\x13a+\\WPP\x89\x92[\x87a+R\x88\x86a\x0E\xC8V[\x92\x01\x93\x99\x98a*\xFBV[\x8B\x97P\x90\x94P\x92a+GV[\x86\x10\x80a+{W[\x15a*]W\x88a+\x11V[Pa\x01\0\x82\x10a+pV[\x90a+\x90\x90a.\x0BV[c;\x9A\xCA\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x15a\x0EOWa\x02\xAA\x91a'WV[a\x02\xAA\x91a&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\xAD\x95a2\xFEV[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a,TWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x12\x15a,BW\x80\x15a,0W\x80`\x01\x1B\x90\x81\x05`\x02\x03a\x0EOWa,\x0C\x90a0\x16V[\x90g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x91\x80\x83\x02\x92\x83\x05\x14`\x01\x16\x15a\x04?Wa\x02\xAA\x91\x05a\x1C\xDFV[`@Qc\"\xEDY\x85`\xE2\x1B\x81R`\x04\x90\xFD[`@Qc\x07\xA0!'`\xE0\x1B\x81R`\x04\x90\xFD[P`\0\x90V[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a,TWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a-\xAAWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[\x91\x90a\x01 \x83\x82\x03\x12a\x03\0W\x82Q\x92` \x81\x01Q\x92a\x02\xAA`@\x83\x01Q\x93`\x80``\x85\x01Q\x94\x01a\x11\xC8V[`\xB5\x81`\x01`\x88\x1B\x81\x10\x15a.\xB2W[\x80i\x01\0\0\0\0\0\0\0\0\0b\x01\0\0\x92\x10\x15a.\xA5W[e\x01\0\0\0\0\0\x81\x10\x15a.\x98W[c\x01\0\0\0\x81\x10\x15a.\x8BW[\x01\x02`\x12\x1C`\x01\x90\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x90\x1C\x80\x80\x92\x04\x10\x90\x03\x90V[`\x10\x1C\x91`\x08\x1B\x91a.OV[` \x1C\x91`\x10\x1B\x91a.BV[`@\x1C\x91` \x1B\x91a.3V[Ph\xB5\0\0\0\0\0\0\0\0\x90P`\x80\x82\x90\x1Ca.\x1BV[g\x1B\xC1mgN\xC8\0\0\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x03\xE8\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x03\xE8\x80\x82\x02\x91`\x01`\0\x19\x82\x10\x17\x91\x81\x84\x05\x14\x90\x15\x17\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x13\xA0K\xBD\xE7\x8C\xC4\0\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x15\x82\x84\x05\x82\x14\x17`\0\x19\x90\x92\x10`\x01`\xFF\x1B\x90\x91\x13\x17\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\x13\xA0K\xBD\xE7\x8C\xC4\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14\x82\x15\x15\x16\x15a\x04?W\x05\x90V[`\0\x81\x12\x80\x15a1VW[a1DW\x80\x15a,BWg\x1B\xC1mgN\xC8\0\0\x81\x14a,0Wg\r\xE0\xB6\xB3\xA7d\0\0\x81\x12\x90\x81\x15a15W\x90[a0W\x82a4\xCCV[\x80\x15a,BWa0\xC0a0\x84a0\x7Fa0za0ua0\xC5\x95a2\xFEV[a5\x8DV[a.\x0BV[a\x18\x0BV[a\x196a0\x98a0\x93\x83a4\xF7V[a\x1B\x89V[a0\xBAa0\xB5a0\xAFa0\xAA\x86a5\"V[a\x1B\xA1V[\x85a6\x04V[a\x1B\xB9V[\x90a5kV[a5\xB5V[\x91`\0\x90[`\x02\x82\x10a0\xE5WPP\x15a0\xDCW\x90V[a\x02\xAA\x90a\x1C\xDFV[\x90\x92a1-\x81a1'a0\xFD\x85a\x196`\x01\x96a1gV[a0\xBAa1\x1Da1\x18a\x19;a1\x13\x87\x80a6\x04V[a\x1C\xDFV[a5\xDDV[a&\xB2\x83\x86a6\x04V[\x90a\x1C\xC3V[\x93\x01\x90a0\xCAV[a1>\x90a\x17|V[\x90a0NV[`@Qc-\x04\x83\xC5`\xE2\x1B\x81R`\x04\x90\xFD[Pg\x1B\xC1mgN\xC8\0\0\x81\x13a0!V[\x80\x15a2zWgV\x98\xEE\xF0fp\0\0\x81\x12\x15a,TWgV\x98\xEE\xF0fo\xFF\xFF\x19\x81\x13\x15a2mW`\0a2]a1\x9C\x83a4\x9FV[a2%a\x19;a1\xB6a1\xB1a0\xB5\x85a'\xC1V[a5LV[\x92a(ia2Xa2Sa2La2Fa2Aa2;a26a20a2+\x8Da2%a2 a2\x1Aa2\x15a0\xAFa2\x10a2\na2\x05a1\xFFa1\xFA\x8Aa6%V[a\x1B\xD1V[\x89a6\x04V[a\x1B\xEBV[\x87a6\x04V[a\x1C\x03V[a\x1C\x1DV[\x83a6\x04V[a\x1C5V[\x90a6\x04V[a\x1COV[\x8Ca6\x04V[a\x1CgV[\x8Aa6\x04V[a\x1C\x7FV[\x88a6\x04V[\x93\x80a6\x04V[a\x18$V[a\x17\x9FV[\x91\x12\x15a\x02\xAAWa\x02\xAA\x90a\x17|V[Pg\x1B\xC1mgN\xC8\0\0\x90V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x90V[a&\xBDa&\xB8a\x02\xAA\x93a1'a&\xAD\x82Qa&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\x97a&\x92`@` \x8B\x01Q\x9A\x01Q\x96a&\x8C\x88\x8Ca+\x86V[\x15a2\xCDWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x90a3*`\0\x82\x13a2\xC6V[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a3F\x82a6PV[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1D\x90V[`\x01`\xFF\x1B\x81\x14a4\xBAW`\0\x81\x12\x15a\x02\xAAW\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x04?Wn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04?W\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a6[\x81\x15\x15a2\xC6V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x90a6\xD9a\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x91\x92\x90Pa'\xECV[\x90a6\xFAa\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x90P\x91\x90\x91a'\xECV[\x90a7\x1Ca\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x92\x90Pa'\xECV[\x80Q\x81\x01` \x01\x90` \x01\x90a7:\x91a-\xDEV[\x80\x91\x93\x92PQ\x90` \x81\x01Q`@\x82\x01Q\x91``\x01Q\x92a7Z\x83a.\x0BV[a7c\x90a\x1BpV[\x93a7m\x90a\x17YV[\x90a7w\x86a.\xC9V[a7\x80\x87a\x1C\x97V[a7\x89\x91a/{V[a7\x92\x87a\x1C\x97V[a7\x9B\x84a.\xF8V[a7\xA4\x91a\x17\xB8V[a7\xAE\x90\x89a/{V[a7\xB7\x91a/\xF8V[a7\xC0\x90a0\x16V[\x93a7\xCA\x84a2\xFEV[a7\xD3\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a7\xE7\x90a,ZV[\x90a7\xF1\x91a/{V[a7\xFA\x90a/\xAAV[a8\x03\x90a\x1C\xDFV[\x84\x86a8\x0E\x86a/LV[\x90a8\x18\x91a/{V[\x90a8\"\x91a/{V[a8+\x91a\x1C\xC3V[a84\x90a,ZV[\x82a8?\x88\x84a/{V[\x90a8I\x91a/{V[a8R\x91a/{V[a8[\x87a\x1C\x97V[a\x1E#\x84a.\xF8V[\x90a8{a\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a-\xDEV[\x94\x93\x90\x92\x91Pa\x1C\xF0V[\x80Q\x81\x01` \x01\x90` \x01\x90a8\x9B\x91a-\xDEV[\x80\x91\x92\x93PQ` \x82\x01Q\x90`@\x83\x01Q\x92``\x01Q\x93a8\xBB\x84a.\x0BV[a8\xC4\x90a\x1BpV[\x94a8\xCE\x90a\x17YV[\x91a8\xD8\x87a.\xC9V[a8\xE1\x88a\x1C\x97V[a8\xEA\x91a/{V[a8\xF4\x83\x83a/{V[a8\xFD\x89a\x1C\x97V[a9\x06\x91a/{V[a9\x0F\x90a\x1C\xDFV[\x84a9\x1A\x85\x85a/{V[a9#\x90a/!V[\x90a9-\x91a/{V[a96\x91a\x1C\xC3V[a9?\x91a/\xF8V[a9H\x90a\x1C\xDFV[a9Q\x90a0\x16V[\x94a9[\x85a2\xFEV[a9d\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a9x\x90a,ZV[\x90a9\x82\x91a/{V[a9\x8B\x90a/\xAAV[a9\x94\x90a\x1C\xDFV[\x85\x87a9\x9F\x87a/LV[\x90a9\xA9\x91a/{V[\x90a9\xB3\x91a/{V[a9\xBC\x91a\x1C\xC3V[a9\xC5\x90a,ZV[\x83a9\xD0\x89\x8Ba/{V[\x90a9\xDA\x91a/{V[a9\xE3\x91a/{V[\x90a9\xED\x88a\x1C\x97V[a$s\x85a.\xF8V[\x90a:\ra\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a-\xDEV[\x94\x93\x90\x92Pa#\x11V\xFE\xA2dipfsX\"\x12 \x9F\xC8\xD6(\xD4d\x1Cp\x07\xB3\x1E\x8A\x8C\x8A\xD0\x8B9])g\xF2\x8B\xA9\x9CtUk\x08\r\x995mdsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static LOGNORMALSOLVER_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\x0C\x1CW`\x005`\xE0\x1C\x80c\x04 X\n\x14a\x01\xACW\x80c\x12\x06I\xC5\x14a\x01\xA7W\x80c\x13N\xAD\x12\x14a\x01\xA2W\x80c\x1E\x97\x8C\xB0\x14a\x01\x9DW\x80c0m\xB4k\x14a\x01\x98W\x80c3\"f\xF3\x14a\x01\x93W\x80c9(\xFF\x97\x14a\x01\x8EW\x80c;&\x8D]\x14a\x01\x89W\x80c;M\x100\x14a\x01\x84W\x80cN\x81\x7F\xD9\x14a\x01\x7FW\x80cO\xD6|X\x14a\x01zW\x80c^\xB4\x08\xFC\x14a\x01uW\x80cb7V\x9F\x14a\x01pW\x80cme\"\x99\x14a\x01kW\x80c\x7F\x17@\x9C\x14a\x01fW\x80c\x81\xB5\xFA\xC2\x14a\x01aW\x80c\x90.\xCA\xA2\x14a\x01\\W\x80c\xA8\xC6.v\x14a\x01WW\x80c\xAFNC\x7F\x14a\x01RW\x80c\xB0\x9D\x04\xE5\x14a\x01MW\x80c\xCB\x1FU2\x14a\x01HW\x80c\xCE\x15;\xF4\x14a\x01CW\x80c\xE9G\x16\xD5\x14a\x01>W\x80c\xEE>\x8C\xFB\x14a\x019W\x80c\xF3\r7\xF2\x14a\x014Wc\xF9\xC2\x82\x11\x03a\x0C\x1CWa\x0C\0V[a\x0B\xD0V[a\x0B\x9FV[a\x0BdV[a\x0B(V[a\n\xE3V[a\n\xB0V[a\n\x94V[a\nkV[a\nBV[a\n\x15V[a\tsV[a\tWV[a\x08\xEAV[a\x08\xCEV[a\x08\xA5V[a\x08\x89V[a\x08ZV[a\x08\x1FV[a\x05\x82V[a\x05+V[a\x04\xFCV[a\x04\xD7V[a\x04DV[a\x03(V[a\x02\xADV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\0[\x83\x81\x10a\x02dWPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01a\x02TV[\x90` \x91a\x02\x8D\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01a\x02QV[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90` a\x02\xAA\x92\x81\x81R\x01\x90a\x02tV[\x90V[4a\x03\x05W`@6`\x03\x19\x01\x12a\x03\0Wa\x02\xFC`@Q`\x02` \x82\x01R`\x045`@\x82\x01R`$5``\x82\x01R``\x81Ra\x02\xE8\x81a\x03\xD4V[`@Q\x91\x82\x91` \x83R` \x83\x01\x90a\x02tV[\x03\x90\xF3[a\x02\x01V[a\x01\xB1V[`\x80\x90`\x03\x19\x01\x12a\x03\0W`\x045\x90`$5\x90`D5\x90`d5\x90V[4a\x03\x05W` a\x03Da\x03;6a\x03\nV[\x92\x91\x90\x91a\r\x04V[`@Q\x90\x81R\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FABI decoding: struct data too sh`D\x82\x01Rb\x1B\xDC\x9D`\xEA\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\xA0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[a\x03\x9DV[`\x80\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[``\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@RV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x04?WV[`\0\x80\xFD[4a\x03\x05W`\xE06`\x03\x19\x01\x12a\x03\0W`\xA06`C\x19\x01\x12a\x04\xB8Wa\x02\xFCa\x04\xAC`@Qa\x04s\x81a\x03\xB3V[`D5\x81R`d5` \x82\x01R`\x845`@\x82\x01R`\xA45``\x82\x01R`\xC45a\x04\x9C\x81a\x04.V[`\x80\x82\x01R`$5`\x045a\x16\xB0V[`@Q\x91\x82\x91\x82a\x02\x99V[a\x03LV[``\x90`\x03\x19\x01\x12a\x03\0W`\x045\x90`$5\x90`D5\x90V[4a\x03\x05W` a\x03Da\x04\xF6a\x04\xED6a\x04\xBDV[\x91\x92\x90\x92a\x12+V[\x91a\x18\x99V[4a\x03\x05W` a\x03Da\x05\x0F6a\x04\xBDV[\x90a\x05\"a\x05\x1C\x84a\x12+V[\x93a\x13\xB2V[\x92\x91\x90\x91a\x19\x86V[4a\x03\x05W` a\x03Da\x05>6a\x04\xBDV[\x90a\x05Ka\x05\x1C\x84a\x12+V[\x92\x90Pa\x1C\xF0V[\x80\x15\x15\x03a\x04?WV[\x90\x92`\x80\x92a\x02\xAA\x95\x94\x15\x15\x83R` \x83\x01R`@\x82\x01R\x81``\x82\x01R\x01\x90a\x02tV[4a\x03\x05W``6`\x03\x19\x01\x12a\x03\0W`$5`\x045a\x05\xA2\x82a\x05SV[`D5\x90a\x05\xF5a\x05\xB1a\r\xFBV[\x92a\x05\xBAa\r\xFBV[\x93a\x05\xC4\x84a\x13\xB2V[` \x84\x99\x93\x95\x92\x99\x01\x94`@\x99\x8A\x86\x01\x92\x83R\x86R\x84Ra\x05\xE4\x87a\x12+V[\x95\x86\x91\x85Q\x90\x87Q\x90Q\x91\x8Aa\x12\xD9V[\x92\x15a\x07\x97W\x92\x82a\x06=\x90\xFD[\x90\x91\x92a\r\x1B\x90a\r\x14\x83a\x12+V[\x90\x85a\x14\xABV[\x90`@Q\x93a\rR\x85a\rD\x83\x86\x88` \x85\x01`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x03`\x1F\x19\x81\x01\x87R\x86a\x04\x0CV[`\0Ta\ri\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92Wa\r\x92\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\r\xB9W[Pa\r\xB3\x90a\x12+V[\x93a\x14\xF9V[a\r\xB3\x91\x93Pa\r\xE0\x90` =` \x11a\r\xE7W[a\r\xD8\x81\x83a\x04\x0CV[\x81\x01\x90a\x0C\xD2V[\x92\x90a\r\xA9V[P=a\r\xCEV[\x91a\x04\xF6a\x02\xAA\x93a\x12+V[`@Q\x90``\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@R`\0`@\x83\x82\x81R\x82` \x82\x01R\x01RV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x90`\x01\x82\x01\x80\x92\x11a\x0EOWV[a\x0E+V[\x91\x90\x82\x01\x80\x92\x11a\x0EOWV[\x15a\x0EhWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: x reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x0EOWV[\x91\x90\x82\x03\x91\x82\x11a\x0EOWV[\x15a\x0E\xDCWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7Finvalid swap: y reserve increase`D\x82\x01Rad!`\xF0\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xC0\x91\x03\x12a\x03\0W\x81Qa\x0FC\x81a\x05SV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[a\x02\xAA\x93\x92``\x92`\x01\x80`\xA0\x1B\x03\x16\x82R` \x82\x01R\x81`@\x82\x01R\x01\x90a\x02tV[\x91a\x08\x9Fa\x02\xAA\x93a\x12+V[\x90\x91\x92a\x0F\xAB\x90a\x0F\xA4\x83a\x12+V[\x90\x85a!:V[\x90`@Q\x93a\x0F\xD4\x85a\rD\x83\x87\x87` \x85\x01`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`\0Ta\x0F\xEB\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92Wa\x10\x14\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\x10;W[Pa\x105\x90a\x12+V[\x93a!gV[a\x105\x91\x93Pa\x10Y\x90` =` \x11a\r\xE7Wa\r\xD8\x81\x83a\x04\x0CV[\x92\x90a\x10+V[\x91\x90` \x92\x83\x81\x83\x03\x12a\x03\0W\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x82\x11a\x11xW\x01\x82`\x1F\x82\x01\x12\x15a\x11\x1FW\x80Q\x91\x82\x11a\x03\xCFW`@Q\x92a\x10\xAD`\x1F\x84\x01`\x1F\x19\x16\x87\x01\x85a\x04\x0CV[\x82\x84R\x85\x83\x83\x01\x01\x11a\x10\xCAW\x84\x83\x94\x95a\x02\xAA\x94\x01\x91\x01a\x02QV[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x86\x90R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x87\x90R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82`\xA0\x91\x03\x12a\x04\xB8W`@Qa\x11\xE0\x81a\x03\xB3V[`\x80\x80\x82\x94\x80Q\x84R` \x81\x01Q` \x85\x01R`@\x81\x01Q`@\x85\x01R``\x81\x01Q``\x85\x01R\x01Q\x91a\x12\x13\x83a\x04.V[\x01RV[\x90`\xA0\x82\x82\x03\x12a\x03\0Wa\x02\xAA\x91a\x11\xC8V[`\x80\x90`@Qa\x12:\x81a\x03\xB3V[`\0\x92\x81\x84\x80\x93R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x01Ra\x12la\x06\xE4a\x06\xE4\x84T`\x01\x80`\xA0\x1B\x03\x16\x90V[\x80;\x15a\x07\x92W`@Qc\xDC\x17\x83U`\xE0\x1B\x81R`\x04\x81\x01\x92\x90\x92R\x82\x90\x82\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07\x8DW\x82a\x02\xAA\x93\x92a\x12\xB6W[PP` \x80\x82Q\x83\x01\x01\x91\x01a\x12\x17V[a\x12\xD2\x92P=\x80\x91\x83>a\x12\xCA\x81\x83a\x04\x0CV[\x81\x01\x90a\x10`V[8\x80a\x12\xA5V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x84\x90R``\x81\x01\x85\x90R\x93\x91\x92a\x13\x01\x85`\x80\x81\x01a\rDV[`\0T`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07\x92Wa\x136\x95` \x91`@Q\x80\x80\x99\x81\x94b.RK`\xE0\x1B\x83R\x88`\x04\x84\x01a\x0C\xE1V[\x03\x91Z\xFA\x91\x82\x15a\x07\x8DWa\x02\xAA\x95`\0\x93a\x13]W[Pa\x13W\x90a\x12+V[\x93a$\xF7V[a\x13W\x91\x93Pa\x13{\x90` =` \x11a\r\xE7Wa\r\xD8\x81\x83a\x04\x0CV[\x92\x90a\x13MV[\x90\x81` \x91\x03\x12a\x03\0WQa\x02\xAA\x81a\x04.V[\x90\x81``\x91\x03\x12a\x03\0W\x80Q\x91`@` \x83\x01Q\x92\x01Q\x90V[`\0T\x90\x91\x90a\x13\xCC\x90a\x06\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[\x80;\x15a\x07\x92W` `\x04\x91`@Q\x92\x83\x80\x92c+\xEE\x84\xF1`\xE2\x1B\x82RZ\xFA\x90\x81\x15a\x07\x8DW`\0\x91a\x14|W[P`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x07\x92W`@Qc3\x85N\xFD`\xE2\x1B\x81R`\x04\x81\x01\x93\x90\x93R``\x90\x83\x90`$\x90\x82\x90Z\xFA\x90\x81\x15a\x07\x8DW`\0\x80\x93`\0\x93a\x14EW[P\x92\x91\x90V[\x91\x93PPa\x14k\x91P``=``\x11a\x14uW[a\x14c\x81\x83a\x04\x0CV[\x81\x01\x90a\x13\x97V[\x92\x90\x92\x918a\x14?V[P=a\x14YV[a\x14\x9E\x91P` =` \x11a\x14\xA4W[a\x14\x96\x81\x83a\x04\x0CV[\x81\x01\x90a\x13\x82V[8a\x13\xFAV[P=a\x14\x8CV[a\x06#\x90a\x14\xCDa\x14\xC8a\x14\xC3\x86a\x02\xAA\x97\x96a&MV[a&\xC2V[a&\xF5V[\x92Qa(\xE5V[a\x14\xF7\x93``\x92\x96\x95\x93a\x01\0\x83\x01\x97\x83R` \x83\x01R`@\x82\x01R\x01\x90a\t\xDFV[V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a\x16}W[\x85\x85\x12a\x16^W\x90a\x15,a\x15:\x92[`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x03`\x1F\x19\x81\x01\x83R\x82a\x04\x0CV[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa\x15P\x81\x85a6\xC2V[\x92a\x15[\x81\x86a6\xC2V[\x88a\x15f\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a\x15z\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a\x15\x95W[PPPPPPPPPP\x90V[\x15a\x15\xF6W[P\x86\x97\x98P\x81\x92a\x15\xB5a\x15\xAF\x8B\x89a\x0ETV[`\x01\x1C\x90V[\x99a\x15\xC0\x8B\x88a6\xC2V[\x90\x84a\x15\xCC\x88\x84a\x18EV[\x13a\x15\xEAWPP\x89\x93[\x88a\x15\xE1\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a\x15\x83V[\x8B\x98P\x90\x95P\x93a\x15\xD6V[`\x14\x10\x80a\x16\x11W[\x15a\x16\nW\x88a\x15\x9BV[\x80\x80a\x15\x88V[P\x80\x83\x10a\x15\xFFV[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x86\x90R`$\x81\x01\x91\x90\x91R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81R`\x04\x81\x01\x91\x90\x91R`$\x81\x01\x92\x90\x92RP`D\x90\xFD[\x93P\x91a\x16j\x90a)\x11V[\x91a\x16w\x84\x83\x85\x84a'\xECV[\x93a\x15\nV[\x85\x85\x13a\x16\x91W\x90a\x15,a\x15:\x92a\x15\x1AV[\x93P\x94a\x16\x9D\x90a'8V[\x94a\x16\xAA\x84\x83\x88\x84a'\xECV[\x93a\x16}V[\x91a\x16\xC1a\x14\xC8a\x14\xC3\x83\x85a2\x87V[\x91g\r\xE0\xB6\xB3\xA7d\0\0\x92\x83\x03\x92\x83\x11a\x0EOWa\x17\x18\x82a\x17\x04a\x16\xF9a\x14\xC8a\x14\xC3\x84a\x16\xF3a\x176\x9A\x8Ca);V[\x97a&MV[a\x06#\x85\x84Qa(\xE5V[\x92a\x17\x11\x82\x82\x86\x8Aa'\xECV[\x84\x88a$\xF7V[\x90`@Q\x94` \x86\x01R`@\x85\x01R``\x84\x01R`\x80\x83\x01\x90a\t\xDFV[a\x01\0\x81Ra\x01 \x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xCFW`@R\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x0EOWV[\x90g\x1B\xC1mgN\xC8\0\0`\0\x83\x82\x03\x93\x12\x81\x84\x12\x81\x16\x91\x84\x13\x90\x15\x16\x17a\x0EOWV[\x90g\x11\x90\0\xAB\x10\x0F\xFB\xFF\x19\x82\x01\x91\x82\x13`\x01\x16a\x0EOWV[\x81\x81\x03\x92\x91`\0\x13\x80\x15\x82\x85\x13\x16\x91\x84\x12\x16\x17a\x0EOWV[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x90g\x1B\xC1mgN\xC8\0\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[`\0\x81\x90\x03\x91\x90`\x01`\xFF\x1B\x81\x14`\x01\x16a\x0EOW`\0\x19\x83\x05\x03a\x0EOWV[\x81\x81\x02\x92\x91`\0\x82\x12`\x01`\xFF\x1B\x82\x14\x16a\x0EOW\x81\x84\x05\x14\x90\x15\x17\x15a\x0EOWV[\x81\x15a\x18\x83W`\x01`\xFF\x1B\x81\x14`\0\x19\x83\x14\x16a\x0EOW\x05\x90V[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[\x91\x90\x91a\x18\xD4` \x83\x01\x93a\x18\xCE\x85Qa\x18\xC6a\x18\xBC`@\x88\x01\x92\x83Q\x90a+\x86V[\x97Q\x82Q\x90a+\xAFV[\x90Q\x90a'WV[\x92a'xV[\x92g\r\xE0\xB6\xB3\xA7d\0\0\x80\x85\x12\x15a\x19RW`\0\x85\x13\x15a\x19GW`\0\x85\x82\x03\x95\x12\x81\x86\x12\x81\x16\x91\x86\x13\x90\x15\x16\x17a\x0EOWa\x19;a\x19@\x92a\x196a\x19(a\x14\xC8\x94a\x19#a\x02\xAA\x99a+\xCEV[a\x18EV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x17\xB8V[a,ZV[\x90Qa(\xE5V[PPPPP`\0\x19\x90V[PPPPP`\0\x90V[\x90\x95\x94\x92\x93a\x14\xF7\x94`\x80\x93a\x01 \x84\x01\x98\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01\x90a\t\xDFV[\x90\x92\x91\x82\x86Q` \x88\x01Q`@\x89\x01Q\x90``\x8A\x01Q\x92a\x19\xA6\x83a.\x0BV[a\x19\xAF\x90a\x1BpV[\x93a\x19\xB9\x90a\x17YV[\x90a\x19\xC3\x8Aa.\xC9V[a\x19\xCC\x8Ba\x1C\x97V[a\x19\xD5\x91a/{V[a\x19\xDE\x8Ba\x1C\x97V[a\x19\xE7\x84a.\xF8V[a\x19\xF0\x91a\x17\xB8V[a\x19\xFA\x90\x88a/{V[a\x1A\x03\x91a/\xF8V[a\x1A\x0C\x90a0\x16V[\x93a\x1A\x16\x84a2\xFEV[a\x1A\x1F\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a\x1A3\x90a,ZV[\x90a\x1A=\x91a/{V[a\x1AF\x90a/\xAAV[a\x1AO\x90a\x1C\xDFV[\x84\x86a\x1AZ\x86a/LV[\x90a\x1Ad\x91a/{V[\x90a\x1An\x91a/{V[a\x1Aw\x91a\x1C\xC3V[a\x1A\x80\x90a,ZV[\x82a\x1A\x8B\x8C\x84a/{V[\x90a\x1A\x95\x91a/{V[a\x1A\x9E\x91a/{V[a\x1A\xA7\x8Ba\x1C\x97V[a\x1A\xB0\x84a.\xF8V[a\x1A\xB9\x91a\x17\xB8V[a\x1A\xC2\x91a/\xF8V[\x95a\x1A\xCC\x91a/{V[\x90a\x1A\xD6\x90a\x1C\xA9V[a\x1A\xDF\x91a/{V[\x92a\x1A\xE9\x91a/{V[a\x1A\xF2\x90a/\xD1V[\x90a\x1A\xFC\x91a\x17\xB8V[a\x1B\x05\x90a1gV[a\x1B\x0E\x91a/{V[a\x1B\x17\x86a.\xC9V[a\x1B \x91a/\xF8V[\x90a\x1B*\x84a\x1C\xDFV[\x90a\x1B4\x91a\x1C\xC3V[\x90a\x1B>\x91a\x1C\xC3V[`\0\x13a\x1BeWa\x02\xAA\x95a\x1B`\x93a\x15,\x92`@Q\x96\x87\x95` \x87\x01a\x19\\V[a)\x90V[PPPPPP`\0\x90V[\x90c;\x9A\xCA\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x15a\x0EOWV[\x90\x81g \x05\xFEO&\x8E\xA0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xC5R\x7Fd, \0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xB6\xB3\xA7d\0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x0Bh\xDF\x18\xE4q\xFB\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x14\xA8EL\x19\xE1\xAC\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x0F\xC1\x0E\x01W\x82w\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x03\xDE\xBD\x08;\x8C|\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x02\x95\xD4\0\xEA2W\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x90\x81g\x01W\xD8\xB2\xEC\xC7\x08\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\x051\n\xA7\xD5!0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xCC=\x15a\0\0\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81a\x03\xE8\x01\x91\x82\x12`\x01\x16a\x0EOWV[\x90\x81g\r\xE0\xB6\xB3\xA7c\xFF\xFF\x19\x01\x91\x82\x12\x15`\x01\x16a\x0EOWV[\x91\x90\x91`\0\x83\x82\x01\x93\x84\x12\x91\x12\x90\x80\x15\x82\x16\x91\x15\x16\x17a\x0EOWV[`\x01`\xFF\x1B\x81\x14a\x0EOW`\0\x03\x90V[\x93\x92\x90\x91\x92\x80Q\x91` \x82\x01Q\x90`@\x83\x01Q\x92``\x01Q\x93a\x1D\x12\x84a.\x0BV[a\x1D\x1B\x90a\x1BpV[\x94a\x1D%\x90a\x17YV[\x91\x82a\x1D0\x88a.\xC9V[a\x1D:\x89\x84a\x1C\xC3V[a\x1DC\x91a/{V[a\x1DM\x89\x84a\x1C\xC3V[a\x1DW\x83\x85a/{V[a\x1D`\x91a\x17\xB8V[a\x1Dj\x90\x8Ba/{V[a\x1Ds\x91a/\xF8V[a\x1D|\x90a0\x16V[\x95a\x1D\x86\x86a2\xFEV[a\x1D\x8F\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a\x1D\xA3\x90a,ZV[\x90a\x1D\xAD\x91a/{V[a\x1D\xB6\x90a/\xAAV[a\x1D\xBF\x90a\x1C\xDFV[\x86\x88a\x1D\xCA\x88a/LV[\x90a\x1D\xD4\x91a/{V[\x90a\x1D\xDE\x91a/{V[a\x1D\xE7\x91a\x1C\xC3V[a\x1D\xF0\x90a,ZV[\x81a\x1D\xFB\x8A\x86a/{V[\x90a\x1E\x05\x91a/{V[a\x1E\x0E\x91a/{V[\x91a\x1E\x19\x89\x82a\x1C\xC3V[\x91a\x1E#\x91a/{V[a\x1E,\x91a\x17\xB8V[a\x1E5\x91a/\xF8V[\x96a\x1E?\x91a/{V[\x90a\x1EI\x90a\x1C\xA9V[a\x1ER\x91a/{V[\x92a\x1E\\\x91a/{V[a\x1Ee\x90a/\xD1V[\x90a\x1Eo\x91a\x17\xB8V[a\x1Ex\x90a1gV[a\x1E\x81\x91a/{V[\x90a\x1E\x8B\x90a.\xC9V[a\x1E\x94\x91a/\xF8V[\x91a\x1E\x9E\x90a\x1C\xDFV[\x90a\x1E\xA8\x91a\x1C\xC3V[\x90a\x02\xAA\x91a\x1C\xC3V[\x91\x90\x91a\x1E\xF0` \x83\x01\x91a\x1E\xEAa\x1E\xE2\x84Qa\x18\xC6a\x1E\xD8`@\x89\x01\x92\x83Q\x90a+\x86V[\x96Q\x82Q\x90a+\xAFV[\x95\x85Qa'WV[\x90a'xV[g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x82\x12\x15a\x19RW`\0\x82\x13\x15a\x19GWa\x02\xAA\x94a\x19@\x93a\x1F&a\x19;\x93a\x19#a\x14\xC8\x96a+\xCEV[\x05a\x1C\xC3V[\x90\x92\x91\x85Q` \x87\x01Q`@\x88\x01Q``\x89\x01Q\x91a\x1FJ\x82a.\x0BV[a\x1FS\x90a\x1BpV[\x92a\x1F]\x90a\x17YV[\x93a\x1Fg\x86a.\xC9V[a\x1Fp\x87a\x1C\x97V[a\x1Fy\x91a/{V[a\x1F\x83\x89\x83a/{V[a\x1F\x8C\x88a\x1C\x97V[a\x1F\x95\x91a/{V[a\x1F\x9E\x90a\x1C\xDFV[\x86a\x1F\xA9\x8B\x85a/{V[a\x1F\xB2\x90a/!V[\x90a\x1F\xBC\x91a/{V[a\x1F\xC5\x91a\x1C\xC3V[a\x1F\xCE\x91a/\xF8V[a\x1F\xD7\x90a\x1C\xDFV[a\x1F\xE0\x90a0\x16V[\x92a\x1F\xEA\x83a2\xFEV[a\x1F\xF3\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a \x07\x90a,ZV[\x90a \x11\x91a/{V[a \x1A\x90a/\xAAV[a #\x90a\x1C\xDFV[\x83\x85a .\x85a/LV[\x90a 8\x91a/{V[\x90a B\x91a/{V[a K\x91a\x1C\xC3V[a T\x90a,ZV[\x85a _\x88\x8Aa/{V[\x90a i\x91a/{V[a r\x91a/{V[\x90a |\x87a\x1C\x97V[a \x85\x87a.\xF8V[a \x8E\x91a\x17\xB8V[a \x97\x91a/{V[a \xA0\x91a/\xF8V[\x93a \xAB\x87\x89a/{V[\x90a \xB5\x90a\x1C\xA9V[a \xBE\x91a/{V[\x92a \xC8\x91a/{V[a \xD1\x90a/\xD1V[\x90a \xDB\x91a\x17\xB8V[a \xE4\x90a1gV[a \xED\x91a/{V[a \xF6\x83a.\xC9V[a \xFF\x91a/\xF8V[\x90a!\t\x90a\x1C\xA9V[\x90a!\x13\x91a\x1C\xC3V[`\0\x13a\x1BeWa\x02\xAA\x95a!5\x93a\x15,\x92`@Q\x96\x87\x95` \x87\x01a\x19\\V[a*\xAFV[\x91a\x14\xC3a\x14\xC8\x91a!K\x93a2\x87V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x03\x90\x81\x11a\x0EOWa\x02\xAA\x91a(\xE5V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a\"\x8AW[\x85\x85\x12a\"kW\x90a\x15,a!\x99\x92`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa!\xAF\x81\x85a6\xE3V[\x92a!\xBA\x81\x86a6\xE3V[\x88a!\xC5\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a!\xD9\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a!\xF3WPPPPPPPPPP\x90V[\x15a\"NW[P\x86\x97\x98P\x81\x92a\"\ra\x15\xAF\x8B\x89a\x0ETV[\x99a\"\x18\x8B\x88a6\xE3V[\x90\x84a\"$\x88\x84a\x18EV[\x13a\"BWPP\x89\x93[\x88a\"9\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a!\xE2V[\x8B\x98P\x90\x95P\x93a\".V[`\x14\x10\x80a\"bW[\x15a\x16\nW\x88a!\xF9V[P\x80\x83\x10a\"WV[\x93P\x91a\"w\x90a)\x11V[\x91a\"\x84\x84\x83\x83\x86a'\xECV[\x93a!xV[\x85\x85\x13a\"\x9EW\x90a\x15,a!\x99\x92a\x15\x1AV[\x93P\x94a\"\xAA\x90a'8V[\x94a\"\xB7\x84\x83\x83\x89a'\xECV[\x93a\"\x8AV[\x92\x91\x90a\"\xD3a\"\xCD\x82\x84a);V[\x85a(\xE5V[\x93\x81\x03\x90\x81\x11a\x0EOW\x92\x81\x03\x90\x81\x11a\x0EOW\x90V[\x92\x91\x90a\"\xFAa\"\xCD\x82\x84a);V[\x93\x81\x01\x80\x91\x11a\x0EOW\x92\x81\x01\x80\x91\x11a\x0EOW\x90V[\x93\x90\x92\x91\x81Q` \x83\x01Q\x91`@\x84\x01Q\x93``\x01Q\x94a#1\x85a.\x0BV[a#:\x90a\x1BpV[\x95a#D\x90a\x17YV[\x92\x83a#O\x89a.\xC9V[a#Y\x8A\x85a\x1C\xC3V[a#b\x91a/{V[a#l\x85\x84a/{V[a#v\x8B\x86a\x1C\xC3V[a#\x7F\x91a/{V[a#\x88\x90a\x1C\xDFV[\x82\x85a#\x94\x88\x87a/{V[\x90a#\x9E\x91a/{V[\x90a#\xA8\x91a/{V[a#\xB1\x91a\x1C\xC3V[a#\xBA\x91a/\xF8V[a#\xC3\x90a\x1C\xDFV[a#\xCC\x90a0\x16V[\x96a#\xD6\x87a2\xFEV[a#\xDF\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a#\xF3\x90a,ZV[\x90a#\xFD\x91a/{V[a$\x06\x90a/\xAAV[a$\x0F\x90a\x1C\xDFV[\x87\x89a$\x1A\x89a/LV[\x90a$$\x91a/{V[\x90a$.\x91a/{V[a$7\x91a\x1C\xC3V[a$@\x90a,ZV[\x81a$K\x8B\x8Da/{V[\x90a$U\x91a/{V[a$^\x91a/{V[\x92a$i\x8A\x82a\x1C\xC3V[\x91a$s\x91a/{V[a$|\x91a\x17\xB8V[a$\x85\x91a/{V[a$\x8E\x91a/\xF8V[\x96a$\x98\x91a/{V[\x90a$\xA2\x90a\x1C\xA9V[a$\xAB\x91a/{V[\x92a$\xB5\x91a/{V[a$\xBE\x90a/\xD1V[\x90a$\xC8\x91a\x17\xB8V[a$\xD1\x90a1gV[a$\xDA\x91a/{V[\x90a$\xE4\x90a.\xC9V[a$\xED\x91a/\xF8V[\x90a\x1E\xA8\x90a\x1C\xA9V[\x92\x93`\0\x93\x85\x92\x91\x85\x85\x12\x15a&\x1AW[\x85\x85\x12a%\xFBW\x90a\x15,a%)\x92`@\x96`@Q\x95\x86\x94` \x86\x01a\x14\xD4V[\x81\x85\x92\x85\x96\x82\x81\x11a\x16;Wa%?\x81\x85a7\x05V[\x92a%J\x81\x86a7\x05V[\x88a%U\x82\x87a\x18EV[\x13a\x16\x1AWP\x90a%i\x91\x97\x96\x92\x97a\x0E\xC8V[`\x01\x95\x91\x82\x91\x87\x80[a%\x83WPPPPPPPPPP\x90V[\x15a%\xDEW[P\x86\x97\x98P\x81\x92a%\x9Da\x15\xAF\x8B\x89a\x0ETV[\x99a%\xA8\x8B\x88a7\x05V[\x90\x84a%\xB4\x88\x84a\x18EV[\x13a%\xD2WPP\x89\x93[\x88a%\xC9\x89\x87a\x0E\xC8V[\x92\x01\x94\x99a%rV[\x8B\x98P\x90\x95P\x93a%\xBEV[`\x14\x10\x80a%\xF2W[\x15a\x16\nW\x88a%\x89V[P\x80\x83\x10a%\xE7V[\x93P\x94a&\x07\x90a'8V[\x94a&\x14\x84\x87\x84\x84a'\xECV[\x93a%\x08V[\x85\x85\x13a&.W\x90a\x15,a%)\x92a\x15\x1AV[\x93P\x91a&:\x90a)\x11V[\x91a&G\x84\x84\x84\x84a'\xECV[\x93a&\x1AV[a&\xBDa&\xB8a\x02\xAA\x93a&\xB2a&\xAD\x82Qa&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\x97a&\x92`@` \x8B\x01Q\x9A\x01Q\x96a&\x8C\x88\x8Ca+\x86V[\x9Da);V[a2\xFEV[\x97a2\xFEV[a\x17\xEEV[\x05a,ZV[a'WV[a'\x9AV[\x90a\x17\xB8V[a\x17\xD1V[a\x18hV[a&\xF1a&\xB8a&\xECg\x13\xA0K\xBD\xFD\xC9\xBE\x88a&\xE6g\x1B\xC1mgN\xC8\0\0\x95a\x17\xD1V[\x05a\x1C\xDFV[a1gV[\x05\x90V[`\0\x81\x12a'\0W\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x10`$\x82\x01RotoUint: negative`\x80\x1B`D\x82\x01R`d\x90\xFD[a\x03\xE7\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wa\x03\xE8\x90\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04?W\x04\x90V[g\x06\xF0[Y\xD3\xB2\0\0\x90\x80\x82\x02\x91\x82\x04\x14`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x04\x90V[\x90\x92\x82\x82\x10\x15a(\xA0Wa\x02\xAA\x93a(i\x92\x84g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82a(\x14\x83\x83a'xV[\x10a(\x8DWP`\x01`\x01`\xFF\x1B\x03\x95\x90P[\x83Q\x91a(WPP\x89\x92[\x87a*4\x88\x86a\x0E\xC8V[\x92\x01\x93\x99\x98a)\xDCV[\x8B\x97P\x90\x94P\x92a*)V[\x86\x10\x80a*dW[\x15a*]W\x88a)\xF3V[\x80\x80a)\xE1V[Pa\x01\0\x82\x10a*RV[`@Qc\x06\xF1\xBE]`\xE2\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`D\x90\xFD[`@Qc0\x82\xDF\xDB`\xE1\x1B\x81Ra\x03\xE8`\x04\x82\x01R`$\x81\x01\x85\x90R`D\x90\xFD[\x91\x90a\x03\xE8\x92`\0\x93`\0\x91\x83\x82\x11a*\x8EWa*\xCB\x81a8\x86V[a*\xD5\x85\x83a9\xF6V[`\0a*\xE1\x82\x84a\x18EV[\x13a*oWPa*\xF2\x85\x96\x95a\x0E\xB8V[`\x01\x94`\0\x91\x86\x80[a+\x0BWPPPPPPPP\x90PV[\x15a+hW[P\x85\x96\x97\x98P\x80\x91a+&a\x15\xAF\x8B\x88a\x0ETV[\x99a+1\x8B\x87a9\xF6V[\x90\x83a+=\x87\x84a\x18EV[\x13a+\\WPP\x89\x92[\x87a+R\x88\x86a\x0E\xC8V[\x92\x01\x93\x99\x98a*\xFBV[\x8B\x97P\x90\x94P\x92a+GV[\x86\x10\x80a+{W[\x15a*]W\x88a+\x11V[Pa\x01\0\x82\x10a+pV[\x90a+\x90\x90a.\x0BV[c;\x9A\xCA\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x15a\x0EOWa\x02\xAA\x91a'WV[a\x02\xAA\x91a&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\xAD\x95a2\xFEV[g\x06\xF0[Y\xD3\xB2\0\0\x81\x14a,TWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x12\x15a,BW\x80\x15a,0W\x80`\x01\x1B\x90\x81\x05`\x02\x03a\x0EOWa,\x0C\x90a0\x16V[\x90g\x13\xA0K\xBD\xFD\xC9\xBE\x88\x91\x80\x83\x02\x92\x83\x05\x14`\x01\x16\x15a\x04?Wa\x02\xAA\x91\x05a\x1C\xDFV[`@Qc\"\xEDY\x85`\xE2\x1B\x81R`\x04\x90\xFD[`@Qc\x07\xA0!'`\xE0\x1B\x81R`\x04\x90\xFD[P`\0\x90V[h\x02H\xCE6\xA7\x0C\xB2k>\x19\x81\x13\x15a,TWh\x07U\xBFy\x8BJ\x1B\xF1\xE5\x81\x12\x15a-\xAAWe\x03x-\xAC\xE9\xD9\x90`N\x1B\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x91``\x90`\x01`_\x1B\x84\x82\x84\x1B\x05\x01\x82\x1D\x93\x84\x02\x90\x03\x80l\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x81\x01\x02\x82\x1D\x90n\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dPn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x82n\x02\xC7#\x88\xD9\xF7OQ\xA93\x1F\xEDi?\x14\x19\x81m\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x81m\x1AR\x12U\xE3OjPa\xB2^\xF1\xC9\xC3\x19\x81m\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x81l$\x0C3\x0E\x9F\xB2\xD9\xCB\xAF\x0F\xD5\xAA\xFB\x19\x81\x01\x02\x8D\x1D\x01\x02\x8B\x1D\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x93m6\rz\xEE\xA0\x93&>\xCCn\x0E\xCB)\x17`b\x1B\x93m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEA\x81\x01\x90\x84m\x01\xD3\x96~\xD3\x0F\xC4\xF8\x9C\x02\xBA\xB5p\x81\x19\x91\x01\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x90`\xC3\x03\x1C\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkEXP_OVERFLOW`\xA0\x1B`D\x82\x01R`d\x90\xFD[\x91\x90a\x01 \x83\x82\x03\x12a\x03\0W\x82Q\x92` \x81\x01Q\x92a\x02\xAA`@\x83\x01Q\x93`\x80``\x85\x01Q\x94\x01a\x11\xC8V[`\xB5\x81`\x01`\x88\x1B\x81\x10\x15a.\xB2W[\x80i\x01\0\0\0\0\0\0\0\0\0b\x01\0\0\x92\x10\x15a.\xA5W[e\x01\0\0\0\0\0\x81\x10\x15a.\x98W[c\x01\0\0\0\x81\x10\x15a.\x8BW[\x01\x02`\x12\x1C`\x01\x90\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x81\x1C\x80\x83\x04\x01\x90\x1C\x80\x80\x92\x04\x10\x90\x03\x90V[`\x10\x1C\x91`\x08\x1B\x91a.OV[` \x1C\x91`\x10\x1B\x91a.BV[`@\x1C\x91` \x1B\x91a.3V[Ph\xB5\0\0\0\0\0\0\0\0\x90P`\x80\x82\x90\x1Ca.\x1BV[g\x1B\xC1mgN\xC8\0\0\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x03\xE8\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a\x03\xE8\x80\x82\x02\x91`\x01`\0\x19\x82\x10\x17\x91\x81\x84\x05\x14\x90\x15\x17\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x13\xA0K\xBD\xE7\x8C\xC4\0\x81\x81\x02\x91`\x01`\xFF\x1B\x81\x13`\x01\x17\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x15\x82\x84\x05\x82\x14\x17`\0\x19\x90\x92\x10`\x01`\xFF\x1B\x90\x91\x13\x17\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\x13\xA0K\xBD\xE7\x8C\xC4\0\x90\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x82\x05\x14\x82\x15\x15\x16\x15a\x04?W\x05\x90V[`\0\x81\x12\x80\x15a1VW[a1DW\x80\x15a,BWg\x1B\xC1mgN\xC8\0\0\x81\x14a,0Wg\r\xE0\xB6\xB3\xA7d\0\0\x81\x12\x90\x81\x15a15W\x90[a0W\x82a4\xCCV[\x80\x15a,BWa0\xC0a0\x84a0\x7Fa0za0ua0\xC5\x95a2\xFEV[a5\x8DV[a.\x0BV[a\x18\x0BV[a\x196a0\x98a0\x93\x83a4\xF7V[a\x1B\x89V[a0\xBAa0\xB5a0\xAFa0\xAA\x86a5\"V[a\x1B\xA1V[\x85a6\x04V[a\x1B\xB9V[\x90a5kV[a5\xB5V[\x91`\0\x90[`\x02\x82\x10a0\xE5WPP\x15a0\xDCW\x90V[a\x02\xAA\x90a\x1C\xDFV[\x90\x92a1-\x81a1'a0\xFD\x85a\x196`\x01\x96a1gV[a0\xBAa1\x1Da1\x18a\x19;a1\x13\x87\x80a6\x04V[a\x1C\xDFV[a5\xDDV[a&\xB2\x83\x86a6\x04V[\x90a\x1C\xC3V[\x93\x01\x90a0\xCAV[a1>\x90a\x17|V[\x90a0NV[`@Qc-\x04\x83\xC5`\xE2\x1B\x81R`\x04\x90\xFD[Pg\x1B\xC1mgN\xC8\0\0\x81\x13a0!V[\x80\x15a2zWgV\x98\xEE\xF0fp\0\0\x81\x12\x15a,TWgV\x98\xEE\xF0fo\xFF\xFF\x19\x81\x13\x15a2mW`\0a2]a1\x9C\x83a4\x9FV[a2%a\x19;a1\xB6a1\xB1a0\xB5\x85a'\xC1V[a5LV[\x92a(ia2Xa2Sa2La2Fa2Aa2;a26a20a2+\x8Da2%a2 a2\x1Aa2\x15a0\xAFa2\x10a2\na2\x05a1\xFFa1\xFA\x8Aa6%V[a\x1B\xD1V[\x89a6\x04V[a\x1B\xEBV[\x87a6\x04V[a\x1C\x03V[a\x1C\x1DV[\x83a6\x04V[a\x1C5V[\x90a6\x04V[a\x1COV[\x8Ca6\x04V[a\x1CgV[\x8Aa6\x04V[a\x1C\x7FV[\x88a6\x04V[\x93\x80a6\x04V[a\x18$V[a\x17\x9FV[\x91\x12\x15a\x02\xAAWa\x02\xAA\x90a\x17|V[Pg\x1B\xC1mgN\xC8\0\0\x90V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x90V[a&\xBDa&\xB8a\x02\xAA\x93a1'a&\xAD\x82Qa&\xA8g\r\xE0\xB6\xB3\xA7d\0\0a&\xA2a&\x9Da&\x97a&\x92`@` \x8B\x01Q\x9A\x01Q\x96a&\x8C\x88\x8Ca+\x86V[\x15a2\xCDWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\t`$\x82\x01Rh\x15S\x91\x11Q\x92S\x91Q`\xBA\x1B`D\x82\x01R`d\x90\xFD[}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x90a3*`\0\x82\x13a2\xC6V[q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06a3F\x82a6PV[``\x92\x83\x82`\x9F\x03\x01\x1B`\x9F\x1C\x90`_\x19\x01}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x92l\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x82m\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x81m\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x81m\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x81m\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x81m\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x81lFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x02\x8C\x1D\x01\x02\x8A\x1D\x01\x02\x88\x1D\x01\x02\x86\x1D\x01\x02\x84\x1D\x01\x02\x82\x1D\x01\x91x\n\tPp\x84\xCCi\x9B\xB0\xE7\x1E\xA8i\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x91l\xB9\xA0%\xD8\x14\xB2\x9C!+\x8B\x1A\x07\xCD\x19\x90\x82m\x028Gs\xBD\xF1\xACVv\xFA\xCC\xED`\x90\x19\x81l\x8C?8\xE9Zk\x1F\xF2\xAB\x1C;46\x19\x81m\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x81m\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x81l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x81\x01\x02\x89\x1D\x01\x02\x87\x1D\x01\x02\x85\x1D\x01\x02\x83\x1D\x01\x02\x90\x1D\x01\x02\x01\x05\x02\x01\x01`\xAE\x1D\x90V[`\x01`\xFF\x1B\x81\x14a4\xBAW`\0\x81\x12\x15a\x02\xAAW\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\x1B\xC1mgN\xC8\0\0\x90\x05\x90V[g\x03\xC1f\\z\xAB \0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[f\x9F2u$b\xA0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[`\x01\x81\x15\x15\x16\x15a\x04?Wn\xC0\x97\xCE{\xC9\x07\x15\xB3K\x9F\x10\0\0\0\0\x05\x90V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04?W\x05\x90V[g\x1B\xC1mgN\xC7\xFF\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\t\xD0(\xCCo _\xFF\x19\x81\x81\x02\x91`\x01\x91\x83\x05\x14\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x0F\xA8\xCE\xDF\xC2\xAD\xDD\xFA\x90\x80\x82\x02\x91\x82\x05\x14`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[g\x02_\x0F\xE1\x05\xA3\x14\0\x90\x81\x81\x02\x91\x81\x83\x05\x14\x90\x15\x17`\x01\x16\x15a\x04?Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x05\x90V[a6[\x81\x15\x15a2\xC6V[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17\x81\x81\x1C`\x0F\x10`\x02\x1B\x17\x81\x81\x1C`\x03\x10`\x01\x1B\x17\x90\x81\x1C`\x01\x10\x17\x90V[\x90a6\xD9a\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x91\x92\x90Pa'\xECV[\x90a6\xFAa\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x90P\x91\x90\x91a'\xECV[\x90a7\x1Ca\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a)kV[\x93\x92\x90Pa'\xECV[\x80Q\x81\x01` \x01\x90` \x01\x90a7:\x91a-\xDEV[\x80\x91\x93\x92PQ\x90` \x81\x01Q`@\x82\x01Q\x91``\x01Q\x92a7Z\x83a.\x0BV[a7c\x90a\x1BpV[\x93a7m\x90a\x17YV[\x90a7w\x86a.\xC9V[a7\x80\x87a\x1C\x97V[a7\x89\x91a/{V[a7\x92\x87a\x1C\x97V[a7\x9B\x84a.\xF8V[a7\xA4\x91a\x17\xB8V[a7\xAE\x90\x89a/{V[a7\xB7\x91a/\xF8V[a7\xC0\x90a0\x16V[\x93a7\xCA\x84a2\xFEV[a7\xD3\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a7\xE7\x90a,ZV[\x90a7\xF1\x91a/{V[a7\xFA\x90a/\xAAV[a8\x03\x90a\x1C\xDFV[\x84\x86a8\x0E\x86a/LV[\x90a8\x18\x91a/{V[\x90a8\"\x91a/{V[a8+\x91a\x1C\xC3V[a84\x90a,ZV[\x82a8?\x88\x84a/{V[\x90a8I\x91a/{V[a8R\x91a/{V[a8[\x87a\x1C\x97V[a\x1E#\x84a.\xF8V[\x90a8{a\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a-\xDEV[\x94\x93\x90\x92\x91Pa\x1C\xF0V[\x80Q\x81\x01` \x01\x90` \x01\x90a8\x9B\x91a-\xDEV[\x80\x91\x92\x93PQ` \x82\x01Q\x90`@\x83\x01Q\x92``\x01Q\x93a8\xBB\x84a.\x0BV[a8\xC4\x90a\x1BpV[\x94a8\xCE\x90a\x17YV[\x91a8\xD8\x87a.\xC9V[a8\xE1\x88a\x1C\x97V[a8\xEA\x91a/{V[a8\xF4\x83\x83a/{V[a8\xFD\x89a\x1C\x97V[a9\x06\x91a/{V[a9\x0F\x90a\x1C\xDFV[\x84a9\x1A\x85\x85a/{V[a9#\x90a/!V[\x90a9-\x91a/{V[a96\x91a\x1C\xC3V[a9?\x91a/\xF8V[a9H\x90a\x1C\xDFV[a9Q\x90a0\x16V[\x94a9[\x85a2\xFEV[a9d\x90a\x17\xEEV[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x05a9x\x90a,ZV[\x90a9\x82\x91a/{V[a9\x8B\x90a/\xAAV[a9\x94\x90a\x1C\xDFV[\x85\x87a9\x9F\x87a/LV[\x90a9\xA9\x91a/{V[\x90a9\xB3\x91a/{V[a9\xBC\x91a\x1C\xC3V[a9\xC5\x90a,ZV[\x83a9\xD0\x89\x8Ba/{V[\x90a9\xDA\x91a/{V[a9\xE3\x91a/{V[\x90a9\xED\x88a\x1C\x97V[a$s\x85a.\xF8V[\x90a:\ra\x02\xAA\x92` \x80\x82Q\x83\x01\x01\x91\x01a-\xDEV[\x94\x93\x90\x92Pa#\x11V\xFE\xA2dipfsX\"\x12 \x9F\xC8\xD6(\xD4d\x1Cp\x07\xB3\x1E\x8A\x8C\x8A\xD0\x8B9])g\xF2\x8B\xA9\x9CtUk\x08\r\x995mdsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static LOGNORMALSOLVER_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct LogNormalSolver(::ethers::contract::Contract); - impl ::core::clone::Clone for LogNormalSolver { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for LogNormalSolver { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for LogNormalSolver { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for LogNormalSolver { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(LogNormalSolver)) - .field(&self.address()) - .finish() - } - } - impl LogNormalSolver { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - LOGNORMALSOLVER_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - LOGNORMALSOLVER_ABI.clone(), - LOGNORMALSOLVER_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `BISECTION_EPSILON` (0x6d652299) function - pub fn bisection_epsilon( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([109, 101, 34, 153], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `MAX_BISECTION_ITERS` (0xf9c28211) function - pub fn max_bisection_iters( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([249, 194, 130, 17], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allocateGivenX` (0xee3e8cfb) function - pub fn allocate_given_x( - &self, - pool_id: ::ethers::core::types::U256, - amount_x: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([238, 62, 140, 251], (pool_id, amount_x)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allocateGivenY` (0x7f17409c) function - pub fn allocate_given_y( - &self, - pool_id: ::ethers::core::types::U256, - amount_y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([127, 23, 64, 156], (pool_id, amount_y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `calculateDiffLower` (0x332266f3) function - pub fn calculate_diff_lower( - &self, - pool_id: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - v: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([51, 34, 102, 243], (pool_id, s, v)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `calculateDiffRaise` (0x902ecaa2) function - pub fn calculate_diff_raise( - &self, - pool_id: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - v: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([144, 46, 202, 162], (pool_id, s, v)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeOptimalArbLowerPrice` (0x306db46b) function - pub fn compute_optimal_arb_lower_price( - &self, - pool_id: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - v_upper: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([48, 109, 180, 107], (pool_id, s, v_upper)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeOptimalArbRaisePrice` (0x4fd67c58) function - pub fn compute_optimal_arb_raise_price( - &self, - pool_id: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - v_upper: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([79, 214, 124, 88], (pool_id, s, v_upper)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deallocateGivenX` (0x6237569f) function - pub fn deallocate_given_x( - &self, - pool_id: ::ethers::core::types::U256, - amount_x: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([98, 55, 86, 159], (pool_id, amount_x)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deallocateGivenY` (0xf30d37f2) function - pub fn deallocate_given_y( - &self, - pool_id: ::ethers::core::types::U256, - amount_y: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([243, 13, 55, 242], (pool_id, amount_y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fetchPoolParams` (0x81b5fac2) function - pub fn fetch_pool_params( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([129, 181, 250, 194], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getInitialPoolData` (0x134ead12) function - pub fn get_initial_pool_data( - &self, - rx: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - params: LogNormalParams, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([19, 78, 173, 18], (rx, s, params)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNextLiquidity` (0xaf4e437f) function - pub fn get_next_liquidity( - &self, - pool_id: ::ethers::core::types::U256, - rx: ::ethers::core::types::U256, - ry: ::ethers::core::types::U256, - l: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 78, 67, 127], (pool_id, rx, ry, l)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNextReserveX` (0x5eb408fc) function - pub fn get_next_reserve_x( - &self, - pool_id: ::ethers::core::types::U256, - ry: ::ethers::core::types::U256, - l: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([94, 180, 8, 252], (pool_id, ry, l, s)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNextReserveY` (0x120649c5) function - pub fn get_next_reserve_y( - &self, - pool_id: ::ethers::core::types::U256, - rx: ::ethers::core::types::U256, - l: ::ethers::core::types::U256, - s: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([18, 6, 73, 197], (pool_id, rx, l, s)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPriceGivenXL` (0x1e978cb0) function - pub fn get_price_given_xl( - &self, - pool_id: ::ethers::core::types::U256, - rx: ::ethers::core::types::U256, - l: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([30, 151, 140, 176], (pool_id, rx, l)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPriceGivenYL` (0x4e817fd9) function - pub fn get_price_given_yl( - &self, - pool_id: ::ethers::core::types::U256, - ry: ::ethers::core::types::U256, - l: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([78, 129, 127, 217], (pool_id, ry, l)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReservesAndLiquidity` (0xce153bf4) function - pub fn get_reserves_and_liquidity( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([206, 21, 59, 244], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `internalPrice` (0x3b4d1030) function - pub fn internal_price( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([59, 77, 16, 48], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `prepareControllerUpdate` (0xcb1f5532) function - pub fn prepare_controller_update( - &self, - controller: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([203, 31, 85, 50], controller) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `prepareFeeUpdate` (0xb09d04e5) function - pub fn prepare_fee_update( - &self, - swap_fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([176, 157, 4, 229], swap_fee) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `prepareSigmaUpdate` (0xe94716d5) function - pub fn prepare_sigma_update( - &self, - target_sigma: ::ethers::core::types::U256, - target_timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([233, 71, 22, 213], (target_sigma, target_timestamp)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `prepareStrikeUpdate` (0x0420580a) function - pub fn prepare_strike_update( - &self, - target_strike: ::ethers::core::types::U256, - target_timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([4, 32, 88, 10], (target_strike, target_timestamp)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `prepareTauUpdate` (0x3b268d5d) function - pub fn prepare_tau_update( - &self, - target_tau: ::ethers::core::types::U256, - target_timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([59, 38, 141, 93], (target_tau, target_timestamp)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `simulateSwap` (0x3928ff97) function - pub fn simulate_swap( - &self, - pool_id: ::ethers::core::types::U256, - swap_x_in: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::Bytes, - ), - > { - self.0 - .method_hash([57, 40, 255, 151], (pool_id, swap_x_in, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `strategy` (0xa8c62e76) function - pub fn strategy( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([168, 198, 46, 118], ()) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for LogNormalSolver { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `BisectionLib_InvalidBounds` with signature `BisectionLib_InvalidBounds(uint256,uint256)` and selector `0x6105bfb6` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "BisectionLib_InvalidBounds", - abi = "BisectionLib_InvalidBounds(uint256,uint256)" - )] - pub struct BisectionLib_InvalidBounds { - pub lower: ::ethers::core::types::U256, - pub upper: ::ethers::core::types::U256, - } - ///Custom Error type `BisectionLib_RootOutsideBounds` with signature `BisectionLib_RootOutsideBounds(int256,int256)` and selector `0x1bc6f974` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "BisectionLib_RootOutsideBounds", - abi = "BisectionLib_RootOutsideBounds(int256,int256)" - )] - pub struct BisectionLib_RootOutsideBounds { - pub lower_result: ::ethers::core::types::I256, - pub upper_result: ::ethers::core::types::I256, - } - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Min", abi = "Min()")] - pub struct Min; - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LogNormalSolverErrors { - BisectionLib_InvalidBounds(BisectionLib_InvalidBounds), - BisectionLib_RootOutsideBounds(BisectionLib_RootOutsideBounds), - Infinity(Infinity), - Min(Min), - NegativeInfinity(NegativeInfinity), - OutOfBounds(OutOfBounds), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for LogNormalSolverErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BisectionLib_InvalidBounds(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BisectionLib_RootOutsideBounds(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Min(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::OutOfBounds(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LogNormalSolverErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::BisectionLib_InvalidBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::BisectionLib_RootOutsideBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Infinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeInfinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::OutOfBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for LogNormalSolverErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for LogNormalSolverErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::BisectionLib_InvalidBounds(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::BisectionLib_RootOutsideBounds(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::Min(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for LogNormalSolverErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for LogNormalSolverErrors { - fn from(value: BisectionLib_InvalidBounds) -> Self { - Self::BisectionLib_InvalidBounds(value) - } - } - impl ::core::convert::From - for LogNormalSolverErrors { - fn from(value: BisectionLib_RootOutsideBounds) -> Self { - Self::BisectionLib_RootOutsideBounds(value) - } - } - impl ::core::convert::From for LogNormalSolverErrors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for LogNormalSolverErrors { - fn from(value: Min) -> Self { - Self::Min(value) - } - } - impl ::core::convert::From for LogNormalSolverErrors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for LogNormalSolverErrors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } - ///Container type for all input parameters for the `BISECTION_EPSILON` function with signature `BISECTION_EPSILON()` and selector `0x6d652299` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "BISECTION_EPSILON", abi = "BISECTION_EPSILON()")] - pub struct BisectionEpsilonCall; - ///Container type for all input parameters for the `MAX_BISECTION_ITERS` function with signature `MAX_BISECTION_ITERS()` and selector `0xf9c28211` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "MAX_BISECTION_ITERS", abi = "MAX_BISECTION_ITERS()")] - pub struct MaxBisectionItersCall; - ///Container type for all input parameters for the `allocateGivenX` function with signature `allocateGivenX(uint256,uint256)` and selector `0xee3e8cfb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allocateGivenX", abi = "allocateGivenX(uint256,uint256)")] - pub struct AllocateGivenXCall { - pub pool_id: ::ethers::core::types::U256, - pub amount_x: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `allocateGivenY` function with signature `allocateGivenY(uint256,uint256)` and selector `0x7f17409c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allocateGivenY", abi = "allocateGivenY(uint256,uint256)")] - pub struct AllocateGivenYCall { - pub pool_id: ::ethers::core::types::U256, - pub amount_y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `calculateDiffLower` function with signature `calculateDiffLower(uint256,uint256,uint256)` and selector `0x332266f3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "calculateDiffLower", - abi = "calculateDiffLower(uint256,uint256,uint256)" - )] - pub struct CalculateDiffLowerCall { - pub pool_id: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - pub v: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `calculateDiffRaise` function with signature `calculateDiffRaise(uint256,uint256,uint256)` and selector `0x902ecaa2` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "calculateDiffRaise", - abi = "calculateDiffRaise(uint256,uint256,uint256)" - )] - pub struct CalculateDiffRaiseCall { - pub pool_id: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - pub v: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeOptimalArbLowerPrice` function with signature `computeOptimalArbLowerPrice(uint256,uint256,uint256)` and selector `0x306db46b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "computeOptimalArbLowerPrice", - abi = "computeOptimalArbLowerPrice(uint256,uint256,uint256)" - )] - pub struct ComputeOptimalArbLowerPriceCall { - pub pool_id: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - pub v_upper: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeOptimalArbRaisePrice` function with signature `computeOptimalArbRaisePrice(uint256,uint256,uint256)` and selector `0x4fd67c58` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "computeOptimalArbRaisePrice", - abi = "computeOptimalArbRaisePrice(uint256,uint256,uint256)" - )] - pub struct ComputeOptimalArbRaisePriceCall { - pub pool_id: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - pub v_upper: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deallocateGivenX` function with signature `deallocateGivenX(uint256,uint256)` and selector `0x6237569f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deallocateGivenX", abi = "deallocateGivenX(uint256,uint256)")] - pub struct DeallocateGivenXCall { - pub pool_id: ::ethers::core::types::U256, - pub amount_x: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deallocateGivenY` function with signature `deallocateGivenY(uint256,uint256)` and selector `0xf30d37f2` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deallocateGivenY", abi = "deallocateGivenY(uint256,uint256)")] - pub struct DeallocateGivenYCall { - pub pool_id: ::ethers::core::types::U256, - pub amount_y: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `fetchPoolParams` function with signature `fetchPoolParams(uint256)` and selector `0x81b5fac2` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "fetchPoolParams", abi = "fetchPoolParams(uint256)")] - pub struct FetchPoolParamsCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getInitialPoolData` function with signature `getInitialPoolData(uint256,uint256,(uint256,uint256,uint256,uint256,address))` and selector `0x134ead12` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getInitialPoolData", - abi = "getInitialPoolData(uint256,uint256,(uint256,uint256,uint256,uint256,address))" - )] - pub struct GetInitialPoolDataCall { - pub rx: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - pub params: LogNormalParams, - } - ///Container type for all input parameters for the `getNextLiquidity` function with signature `getNextLiquidity(uint256,uint256,uint256,uint256)` and selector `0xaf4e437f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getNextLiquidity", - abi = "getNextLiquidity(uint256,uint256,uint256,uint256)" - )] - pub struct GetNextLiquidityCall { - pub pool_id: ::ethers::core::types::U256, - pub rx: ::ethers::core::types::U256, - pub ry: ::ethers::core::types::U256, - pub l: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNextReserveX` function with signature `getNextReserveX(uint256,uint256,uint256,uint256)` and selector `0x5eb408fc` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getNextReserveX", - abi = "getNextReserveX(uint256,uint256,uint256,uint256)" - )] - pub struct GetNextReserveXCall { - pub pool_id: ::ethers::core::types::U256, - pub ry: ::ethers::core::types::U256, - pub l: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNextReserveY` function with signature `getNextReserveY(uint256,uint256,uint256,uint256)` and selector `0x120649c5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getNextReserveY", - abi = "getNextReserveY(uint256,uint256,uint256,uint256)" - )] - pub struct GetNextReserveYCall { - pub pool_id: ::ethers::core::types::U256, - pub rx: ::ethers::core::types::U256, - pub l: ::ethers::core::types::U256, - pub s: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getPriceGivenXL` function with signature `getPriceGivenXL(uint256,uint256,uint256)` and selector `0x1e978cb0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getPriceGivenXL", - abi = "getPriceGivenXL(uint256,uint256,uint256)" - )] - pub struct GetPriceGivenXLCall { - pub pool_id: ::ethers::core::types::U256, - pub rx: ::ethers::core::types::U256, - pub l: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getPriceGivenYL` function with signature `getPriceGivenYL(uint256,uint256,uint256)` and selector `0x4e817fd9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getPriceGivenYL", - abi = "getPriceGivenYL(uint256,uint256,uint256)" - )] - pub struct GetPriceGivenYLCall { - pub pool_id: ::ethers::core::types::U256, - pub ry: ::ethers::core::types::U256, - pub l: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getReservesAndLiquidity` function with signature `getReservesAndLiquidity(uint256)` and selector `0xce153bf4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getReservesAndLiquidity", - abi = "getReservesAndLiquidity(uint256)" - )] - pub struct GetReservesAndLiquidityCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `internalPrice` function with signature `internalPrice(uint256)` and selector `0x3b4d1030` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "internalPrice", abi = "internalPrice(uint256)")] - pub struct InternalPriceCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `prepareControllerUpdate` function with signature `prepareControllerUpdate(address)` and selector `0xcb1f5532` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "prepareControllerUpdate", - abi = "prepareControllerUpdate(address)" - )] - pub struct PrepareControllerUpdateCall { - pub controller: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `prepareFeeUpdate` function with signature `prepareFeeUpdate(uint256)` and selector `0xb09d04e5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "prepareFeeUpdate", abi = "prepareFeeUpdate(uint256)")] - pub struct PrepareFeeUpdateCall { - pub swap_fee: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `prepareSigmaUpdate` function with signature `prepareSigmaUpdate(uint256,uint256)` and selector `0xe94716d5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "prepareSigmaUpdate", abi = "prepareSigmaUpdate(uint256,uint256)")] - pub struct PrepareSigmaUpdateCall { - pub target_sigma: ::ethers::core::types::U256, - pub target_timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `prepareStrikeUpdate` function with signature `prepareStrikeUpdate(uint256,uint256)` and selector `0x0420580a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "prepareStrikeUpdate", - abi = "prepareStrikeUpdate(uint256,uint256)" - )] - pub struct PrepareStrikeUpdateCall { - pub target_strike: ::ethers::core::types::U256, - pub target_timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `prepareTauUpdate` function with signature `prepareTauUpdate(uint256,uint256)` and selector `0x3b268d5d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "prepareTauUpdate", abi = "prepareTauUpdate(uint256,uint256)")] - pub struct PrepareTauUpdateCall { - pub target_tau: ::ethers::core::types::U256, - pub target_timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `simulateSwap` function with signature `simulateSwap(uint256,bool,uint256)` and selector `0x3928ff97` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "simulateSwap", abi = "simulateSwap(uint256,bool,uint256)")] - pub struct SimulateSwapCall { - pub pool_id: ::ethers::core::types::U256, - pub swap_x_in: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `strategy` function with signature `strategy()` and selector `0xa8c62e76` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "strategy", abi = "strategy()")] - pub struct StrategyCall; - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LogNormalSolverCalls { - BisectionEpsilon(BisectionEpsilonCall), - MaxBisectionIters(MaxBisectionItersCall), - AllocateGivenX(AllocateGivenXCall), - AllocateGivenY(AllocateGivenYCall), - CalculateDiffLower(CalculateDiffLowerCall), - CalculateDiffRaise(CalculateDiffRaiseCall), - ComputeOptimalArbLowerPrice(ComputeOptimalArbLowerPriceCall), - ComputeOptimalArbRaisePrice(ComputeOptimalArbRaisePriceCall), - DeallocateGivenX(DeallocateGivenXCall), - DeallocateGivenY(DeallocateGivenYCall), - FetchPoolParams(FetchPoolParamsCall), - GetInitialPoolData(GetInitialPoolDataCall), - GetNextLiquidity(GetNextLiquidityCall), - GetNextReserveX(GetNextReserveXCall), - GetNextReserveY(GetNextReserveYCall), - GetPriceGivenXL(GetPriceGivenXLCall), - GetPriceGivenYL(GetPriceGivenYLCall), - GetReservesAndLiquidity(GetReservesAndLiquidityCall), - InternalPrice(InternalPriceCall), - PrepareControllerUpdate(PrepareControllerUpdateCall), - PrepareFeeUpdate(PrepareFeeUpdateCall), - PrepareSigmaUpdate(PrepareSigmaUpdateCall), - PrepareStrikeUpdate(PrepareStrikeUpdateCall), - PrepareTauUpdate(PrepareTauUpdateCall), - SimulateSwap(SimulateSwapCall), - Strategy(StrategyCall), - } - impl ::ethers::core::abi::AbiDecode for LogNormalSolverCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BisectionEpsilon(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::MaxBisectionIters(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::AllocateGivenX(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::AllocateGivenY(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::CalculateDiffLower(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::CalculateDiffRaise(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ComputeOptimalArbLowerPrice(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ComputeOptimalArbRaisePrice(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DeallocateGivenX(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DeallocateGivenY(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::FetchPoolParams(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetInitialPoolData(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetNextLiquidity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetNextReserveX(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetNextReserveY(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPriceGivenXL(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPriceGivenYL(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetReservesAndLiquidity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InternalPrice(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PrepareControllerUpdate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PrepareFeeUpdate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PrepareSigmaUpdate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PrepareStrikeUpdate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::PrepareTauUpdate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SimulateSwap(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Strategy(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LogNormalSolverCalls { - fn encode(self) -> Vec { - match self { - Self::BisectionEpsilon(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::MaxBisectionIters(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::AllocateGivenX(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::AllocateGivenY(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CalculateDiffLower(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CalculateDiffRaise(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ComputeOptimalArbLowerPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ComputeOptimalArbRaisePrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DeallocateGivenX(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DeallocateGivenY(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::FetchPoolParams(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetInitialPoolData(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetNextLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetNextReserveX(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetNextReserveY(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPriceGivenXL(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPriceGivenYL(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetReservesAndLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InternalPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PrepareControllerUpdate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PrepareFeeUpdate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PrepareSigmaUpdate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PrepareStrikeUpdate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PrepareTauUpdate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SimulateSwap(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Strategy(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for LogNormalSolverCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::BisectionEpsilon(element) => ::core::fmt::Display::fmt(element, f), - Self::MaxBisectionIters(element) => ::core::fmt::Display::fmt(element, f), - Self::AllocateGivenX(element) => ::core::fmt::Display::fmt(element, f), - Self::AllocateGivenY(element) => ::core::fmt::Display::fmt(element, f), - Self::CalculateDiffLower(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::CalculateDiffRaise(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::ComputeOptimalArbLowerPrice(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::ComputeOptimalArbRaisePrice(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DeallocateGivenX(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateGivenY(element) => ::core::fmt::Display::fmt(element, f), - Self::FetchPoolParams(element) => ::core::fmt::Display::fmt(element, f), - Self::GetInitialPoolData(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::GetNextLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNextReserveX(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNextReserveY(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPriceGivenXL(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPriceGivenYL(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReservesAndLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InternalPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::PrepareControllerUpdate(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::PrepareFeeUpdate(element) => ::core::fmt::Display::fmt(element, f), - Self::PrepareSigmaUpdate(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::PrepareStrikeUpdate(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::PrepareTauUpdate(element) => ::core::fmt::Display::fmt(element, f), - Self::SimulateSwap(element) => ::core::fmt::Display::fmt(element, f), - Self::Strategy(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: BisectionEpsilonCall) -> Self { - Self::BisectionEpsilon(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: MaxBisectionItersCall) -> Self { - Self::MaxBisectionIters(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: AllocateGivenXCall) -> Self { - Self::AllocateGivenX(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: AllocateGivenYCall) -> Self { - Self::AllocateGivenY(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: CalculateDiffLowerCall) -> Self { - Self::CalculateDiffLower(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: CalculateDiffRaiseCall) -> Self { - Self::CalculateDiffRaise(value) - } - } - impl ::core::convert::From - for LogNormalSolverCalls { - fn from(value: ComputeOptimalArbLowerPriceCall) -> Self { - Self::ComputeOptimalArbLowerPrice(value) - } - } - impl ::core::convert::From - for LogNormalSolverCalls { - fn from(value: ComputeOptimalArbRaisePriceCall) -> Self { - Self::ComputeOptimalArbRaisePrice(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: DeallocateGivenXCall) -> Self { - Self::DeallocateGivenX(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: DeallocateGivenYCall) -> Self { - Self::DeallocateGivenY(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: FetchPoolParamsCall) -> Self { - Self::FetchPoolParams(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: GetInitialPoolDataCall) -> Self { - Self::GetInitialPoolData(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: GetNextLiquidityCall) -> Self { - Self::GetNextLiquidity(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: GetNextReserveXCall) -> Self { - Self::GetNextReserveX(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: GetNextReserveYCall) -> Self { - Self::GetNextReserveY(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: GetPriceGivenXLCall) -> Self { - Self::GetPriceGivenXL(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: GetPriceGivenYLCall) -> Self { - Self::GetPriceGivenYL(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: GetReservesAndLiquidityCall) -> Self { - Self::GetReservesAndLiquidity(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: InternalPriceCall) -> Self { - Self::InternalPrice(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: PrepareControllerUpdateCall) -> Self { - Self::PrepareControllerUpdate(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: PrepareFeeUpdateCall) -> Self { - Self::PrepareFeeUpdate(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: PrepareSigmaUpdateCall) -> Self { - Self::PrepareSigmaUpdate(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: PrepareStrikeUpdateCall) -> Self { - Self::PrepareStrikeUpdate(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: PrepareTauUpdateCall) -> Self { - Self::PrepareTauUpdate(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: SimulateSwapCall) -> Self { - Self::SimulateSwap(value) - } - } - impl ::core::convert::From for LogNormalSolverCalls { - fn from(value: StrategyCall) -> Self { - Self::Strategy(value) - } - } - ///Container type for all return fields from the `BISECTION_EPSILON` function with signature `BISECTION_EPSILON()` and selector `0x6d652299` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BisectionEpsilonReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `MAX_BISECTION_ITERS` function with signature `MAX_BISECTION_ITERS()` and selector `0xf9c28211` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MaxBisectionItersReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `allocateGivenX` function with signature `allocateGivenX(uint256,uint256)` and selector `0xee3e8cfb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllocateGivenXReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `allocateGivenY` function with signature `allocateGivenY(uint256,uint256)` and selector `0x7f17409c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllocateGivenYReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `calculateDiffLower` function with signature `calculateDiffLower(uint256,uint256,uint256)` and selector `0x332266f3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CalculateDiffLowerReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `calculateDiffRaise` function with signature `calculateDiffRaise(uint256,uint256,uint256)` and selector `0x902ecaa2` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CalculateDiffRaiseReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `computeOptimalArbLowerPrice` function with signature `computeOptimalArbLowerPrice(uint256,uint256,uint256)` and selector `0x306db46b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeOptimalArbLowerPriceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `computeOptimalArbRaisePrice` function with signature `computeOptimalArbRaisePrice(uint256,uint256,uint256)` and selector `0x4fd67c58` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeOptimalArbRaisePriceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `deallocateGivenX` function with signature `deallocateGivenX(uint256,uint256)` and selector `0x6237569f` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DeallocateGivenXReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `deallocateGivenY` function with signature `deallocateGivenY(uint256,uint256)` and selector `0xf30d37f2` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DeallocateGivenYReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `fetchPoolParams` function with signature `fetchPoolParams(uint256)` and selector `0x81b5fac2` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct FetchPoolParamsReturn(pub LogNormalParams); - ///Container type for all return fields from the `getInitialPoolData` function with signature `getInitialPoolData(uint256,uint256,(uint256,uint256,uint256,uint256,address))` and selector `0x134ead12` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetInitialPoolDataReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `getNextLiquidity` function with signature `getNextLiquidity(uint256,uint256,uint256,uint256)` and selector `0xaf4e437f` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetNextLiquidityReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getNextReserveX` function with signature `getNextReserveX(uint256,uint256,uint256,uint256)` and selector `0x5eb408fc` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetNextReserveXReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getNextReserveY` function with signature `getNextReserveY(uint256,uint256,uint256,uint256)` and selector `0x120649c5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetNextReserveYReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getPriceGivenXL` function with signature `getPriceGivenXL(uint256,uint256,uint256)` and selector `0x1e978cb0` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPriceGivenXLReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getPriceGivenYL` function with signature `getPriceGivenYL(uint256,uint256,uint256)` and selector `0x4e817fd9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPriceGivenYLReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReservesAndLiquidity` function with signature `getReservesAndLiquidity(uint256)` and selector `0xce153bf4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetReservesAndLiquidityReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `internalPrice` function with signature `internalPrice(uint256)` and selector `0x3b4d1030` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InternalPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `prepareControllerUpdate` function with signature `prepareControllerUpdate(address)` and selector `0xcb1f5532` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PrepareControllerUpdateReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `prepareFeeUpdate` function with signature `prepareFeeUpdate(uint256)` and selector `0xb09d04e5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PrepareFeeUpdateReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `prepareSigmaUpdate` function with signature `prepareSigmaUpdate(uint256,uint256)` and selector `0xe94716d5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PrepareSigmaUpdateReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `prepareStrikeUpdate` function with signature `prepareStrikeUpdate(uint256,uint256)` and selector `0x0420580a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PrepareStrikeUpdateReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `prepareTauUpdate` function with signature `prepareTauUpdate(uint256,uint256)` and selector `0x3b268d5d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PrepareTauUpdateReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `simulateSwap` function with signature `simulateSwap(uint256,bool,uint256)` and selector `0x3928ff97` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SimulateSwapReturn( - pub bool, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::Bytes, - ); - ///Container type for all return fields from the `strategy` function with signature `strategy()` and selector `0xa8c62e76` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct StrategyReturn(pub ::ethers::core::types::Address); - ///`LogNormalParams(uint256,uint256,uint256,uint256,address)` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct LogNormalParams { - pub strike: ::ethers::core::types::U256, - pub sigma: ::ethers::core::types::U256, - pub tau: ::ethers::core::types::U256, - pub swap_fee: ::ethers::core::types::U256, - pub controller: ::ethers::core::types::Address, - } -} diff --git a/crates/bindings/src/lp_token.rs b/crates/bindings/src/lp_token.rs deleted file mode 100644 index 7620ecafb..000000000 --- a/crates/bindings/src/lp_token.rs +++ /dev/null @@ -1,1854 +0,0 @@ -pub use lp_token::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod lp_token { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("allowance"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allowance"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("approve"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("approve"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("burn"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("burn"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("decimals"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("decimals"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("dfmm"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("dfmm"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("initialize"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("initialize"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("name_"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("symbol_"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("initialized"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("initialized"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("mint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("mint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("name"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("name"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("nonces"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("nonces"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("permit"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("permit"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("value"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deadline"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("v"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("r"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("s"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("symbol"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("symbol"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("totalSupply"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("totalSupply"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("transfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("transferFrom"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Approval"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Approval"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Transfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AlreadyInitialized"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("AlreadyInitialized"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("NotDFMM"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NotDFMM"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static LPTOKEN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static LPTOKEN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static LPTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct LPToken(::ethers::contract::Contract); - impl ::core::clone::Clone for LPToken { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for LPToken { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for LPToken { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for LPToken { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(LPToken)).field(&self.address()).finish() - } - } - impl LPToken { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - LPTOKEN_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - LPTOKEN_ABI.clone(), - LPTOKEN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `burn` (0x9dc29fac) function - pub fn burn( - &self, - from: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([157, 194, 159, 172], (from, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `dfmm` (0xafba13c4) function - pub fn dfmm( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([175, 186, 19, 196], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `initialize` (0x4cd88b76) function - pub fn initialize( - &self, - name: ::std::string::String, - symbol: ::std::string::String, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([76, 216, 139, 118], (name, symbol)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `initialized` (0x158ef93e) function - pub fn initialized( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([21, 142, 249, 62], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LPTokenEvents> { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for LPToken { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `AlreadyInitialized` with signature `AlreadyInitialized()` and selector `0x0dc149f0` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "AlreadyInitialized", abi = "AlreadyInitialized()")] - pub struct AlreadyInitialized; - ///Custom Error type `NotDFMM` with signature `NotDFMM()` and selector `0x6853cba7` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NotDFMM", abi = "NotDFMM()")] - pub struct NotDFMM; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LPTokenErrors { - AlreadyInitialized(AlreadyInitialized), - NotDFMM(NotDFMM), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for LPTokenErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::AlreadyInitialized(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NotDFMM(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LPTokenErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::AlreadyInitialized(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NotDFMM(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for LPTokenErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for LPTokenErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AlreadyInitialized(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::NotDFMM(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for LPTokenErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for LPTokenErrors { - fn from(value: AlreadyInitialized) -> Self { - Self::AlreadyInitialized(value) - } - } - impl ::core::convert::From for LPTokenErrors { - fn from(value: NotDFMM) -> Self { - Self::NotDFMM(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LPTokenEvents { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for LPTokenEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(LPTokenEvents::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(LPTokenEvents::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for LPTokenEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for LPTokenEvents { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for LPTokenEvents { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "burn", abi = "burn(address,uint256)")] - pub struct BurnCall { - pub from: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `dfmm` function with signature `dfmm()` and selector `0xafba13c4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "dfmm", abi = "dfmm()")] - pub struct DfmmCall; - ///Container type for all input parameters for the `initialize` function with signature `initialize(string,string)` and selector `0x4cd88b76` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "initialize", abi = "initialize(string,string)")] - pub struct InitializeCall { - pub name: ::std::string::String, - pub symbol: ::std::string::String, - } - ///Container type for all input parameters for the `initialized` function with signature `initialized()` and selector `0x158ef93e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "initialized", abi = "initialized()")] - pub struct InitializedCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum LPTokenCalls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Burn(BurnCall), - Decimals(DecimalsCall), - Dfmm(DfmmCall), - Initialize(InitializeCall), - Initialized(InitializedCall), - Mint(MintCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for LPTokenCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Burn(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Dfmm(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Initialize(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Initialized(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LPTokenCalls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Dfmm(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Initialize(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Initialized(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for LPTokenCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Burn(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Dfmm(element) => ::core::fmt::Display::fmt(element, f), - Self::Initialize(element) => ::core::fmt::Display::fmt(element, f), - Self::Initialized(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: BurnCall) -> Self { - Self::Burn(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: DfmmCall) -> Self { - Self::Dfmm(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: InitializeCall) -> Self { - Self::Initialize(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: InitializedCall) -> Self { - Self::Initialized(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for LPTokenCalls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `dfmm` function with signature `dfmm()` and selector `0xafba13c4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DfmmReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `initialized` function with signature `initialized()` and selector `0x158ef93e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InitializedReturn(pub bool); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/mock_erc20.rs b/crates/bindings/src/mock_erc20.rs deleted file mode 100644 index 17f5888bb..000000000 --- a/crates/bindings/src/mock_erc20.rs +++ /dev/null @@ -1,1526 +0,0 @@ -pub use mock_erc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod mock_erc20 { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_name"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_symbol"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("allowance"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allowance"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("approve"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("approve"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("burn"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("burn"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("value"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("decimals"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("decimals"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("mint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("mint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("value"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("name"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("name"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("nonces"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("nonces"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("permit"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("permit"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("value"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deadline"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("v"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("r"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("s"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("symbol"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("symbol"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("totalSupply"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("totalSupply"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("transfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("transferFrom"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Approval"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Approval"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Transfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static MOCKERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\xE0`@\x90\x80\x82R4b\0\x04\x99WPb\0\x13\x01\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xE6V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04JW\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04DW\x82b\0\0V\x91\x85\x01b\0\x05ZV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04DW\x83\x91b\0\0u\x91\x84\x01b\0\x05ZV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04?W\x84Q\x94\x86\x86\x11b\0\x04)W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06~V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xD8W[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03pW\x89\x92b\0\x03dW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03PW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06~V[\x82\x81\x11b\0\x02\xFBW[P\x87\x91\x83\x11`\x01\x14b\0\x02\x97W\x88\x92b\0\x02\x8BW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06~V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02kWPP`\x01\x14b\0\x02+W[Pb\0\x01m\x92P\x03\x82b\0\x04\xE6V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02\x17WP\x83\x90RQ\x90 `\xC0Ra\x0CE\x90\x81b\0\x06\xBC\x829`\x80Q\x81a\x06\x84\x01R`\xA0Q\x81a\nM\x01R`\xC0Q\x81a\nt\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02RWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x028V[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xE4WPP\x84\x11b\0\x02\xCAW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xBCV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xA9V[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03FW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x037WPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x03'V[\x92P\x81\x92b\0\x03\x18V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xC1WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xA7W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x99V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x7FV[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x04\x1FW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\x10WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x01V[\x92P\x81\x92b\0\x03\xF4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\nV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04)W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x06%W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04)W` \x90`@Q\x92b\0\x05\x95\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xE6V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xD0W`\0[\x81\x81\x10b\0\x05\xBCWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xA6V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xB0W[` \x83\x10\x14b\0\x06\x9AWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\x8EV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static MOCKERC20_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static MOCKERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct MockERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for MockERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(MockERC20)).field(&self.address()).finish() - } - } - impl MockERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - MOCKERC20_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKERC20_ABI.clone(), - MOCKERC20_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `burn` (0x9dc29fac) function - pub fn burn( - &self, - from: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([157, 194, 159, 172], (from, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - MockERC20Events, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for MockERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum MockERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for MockERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(MockERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(MockERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for MockERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for MockERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "burn", abi = "burn(address,uint256)")] - pub struct BurnCall { - pub from: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum MockERC20Calls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Burn(BurnCall), - Decimals(DecimalsCall), - Mint(MintCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for MockERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Burn(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockERC20Calls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for MockERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Burn(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: BurnCall) -> Self { - Self::Burn(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/mock_erc721.rs b/crates/bindings/src/mock_erc721.rs deleted file mode 100644 index 283623714..000000000 --- a/crates/bindings/src/mock_erc721.rs +++ /dev/null @@ -1,1527 +0,0 @@ -pub use mock_erc721::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod mock_erc721 { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("approve"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("approve"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getApproved"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getApproved"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("initialize"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("initialize"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_name"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_symbol"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("isApprovedForAll"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isApprovedForAll"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("name"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("name"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("ownerOf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("ownerOf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("safeTransferFrom"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("safeTransferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("safeTransferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("setApprovalForAll"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("setApprovalForAll"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("operator"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("approved"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("supportsInterface"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("supportsInterface"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("interfaceId"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 4usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes4"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("symbol"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("symbol"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("tokenURI"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("tokenURI"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("transferFrom"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Approval"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Approval"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: true, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("ApprovalForAll"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("ApprovalForAll"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("operator"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("approved"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Transfer"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: true, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static MOCKERC721_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\0\x19W`@Qa\x11I\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x01\xFF\xC9\xA7\x14a\x0B\x15W\x80c\x06\xFD\xDE\x03\x14a\neW\x80c\x08\x18\x12\xFC\x14a\n5W\x80c\t^\xA7\xB3\x14a\t\x80W\x80c#\xB8r\xDD\x14a\thW\x80cB\x84.\x0E\x14a\x08\x9EW\x80cL\xD8\x8Bv\x14a\x05hW\x80ccR!\x1E\x14a\x04\xFDW\x80cp\xA0\x821\x14a\x04\x8BW\x80c\x95\xD8\x9BA\x14a\x03\x9DW\x80c\xA2,\xB4e\x14a\x03\x18W\x80c\xB8\x8DO\xDE\x14a\x01\xCBW\x80c\xC8{V\xDD\x14a\x01oWc\xE9\x85\xE9\xC5\x14a\x01\x18WPa\0\x11V[\x904a\x01jW\x80`\x03\x196\x01\x12a\x01eW`\xFF\x81` \x93a\x017a\r)V[a\x01?a\rDV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x83R`\x05\x87R\x83\x83 \x91\x16\x82R\x85R T\x91Q\x91\x16\x15\x15\x81R\xF3[a\x0B\xD7V[a\x0B\x87V[P\x904a\x01jW` \x80`\x03\x196\x01\x12a\x01eW\x91\x81Q\x92\x83\x91` \x83R``Q\x91\x82` \x85\x01R\x81[\x83\x81\x10a\x01\xB6WPP\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x81\x01\x03\x01\x90\xF3[`\x80\x81\x01Q\x87\x82\x01\x87\x01R\x86\x94P\x81\x01a\x01\x99V[P\x914a\x01jW`\x806`\x03\x19\x01\x12a\x01eWa\x01\xE6a\r)V[\x90a\x01\xEFa\rDV[\x91`D5\x90`d5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x03\x13W6`#\x82\x01\x12\x15a\x03\x0EWa\x02$\x906\x90`$\x81\x87\x015\x91\x01a\r\xE8V[\x91a\x020\x81\x86\x84a\x0E\xDFV[\x84;\x15\x94\x85\x15a\x02HW[\x87a\x02E\x87a\x10\xD4V[\x80\xF3[\x93\x94P\x91\x92\x90\x91\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x81;\x15a\x03\tW\x87` \x94a\x02\xA0\x89Q\x97\x88\x96\x87\x95\x86\x94c\n\x85\xBD\x01`\xE1\x1B\x9C\x8D\x87R3\x90\x87\x01R\x16`$\x85\x01R`D\x84\x01R`\x80`d\x84\x01R`\x84\x83\x01\x90a\x0C\xE9V[\x03\x92Z\xF1\x90\x81\x15a\x02\xFCWa\x02E\x93P\x84\x91a\x02\xCDW[P`\x01`\x01`\xE0\x1B\x03\x19\x16\x148\x80\x80\x80\x80a\x02;V[a\x02\xEF\x91P` =` \x11a\x02\xF5W[a\x02\xE7\x81\x83a\x0C\xB1V[\x81\x01\x90a\x10\xB4V[8a\x02\xB7V[P=a\x02\xDDV[PPPQ\x90=\x90\x82>=\x90\xFD[a\x10aV[a\r\x8FV[a\x0C'V[P\x904a\x01jW\x80`\x03\x196\x01\x12a\x01eWa\x032a\r)V[\x90`$5\x90\x81\x15\x15\x80\x92\x03a\x03\x99W3\x84R`\x05` R\x80\x84 \x92`\x01\x80`\xA0\x1B\x03\x16\x92\x83\x85R` R\x80\x84 `\xFF\x19\x81T\x16`\xFF\x84\x16\x17\x90UQ\x90\x81R\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1` 3\x92\xA3\x80\xF3[\x83\x80\xFD[P4a\x01jW\x80`\x03\x196\x01\x12a\x01eW\x81Q\x91\x82\x82`\x01\x93`\x01T\x94a\x03\xC3\x86a\x0CwV[\x91\x82\x85R` \x96\x87`\x01\x82\x16\x91\x82`\0\x14a\x04dWPP`\x01\x14a\x04\x08W[PPPa\x04\x04\x92\x91a\x03\xF5\x91\x03\x85a\x0C\xB1V[Q\x92\x82\x84\x93\x84R\x83\x01\x90a\x0C\xE9V[\x03\x90\xF3[\x91\x90\x86\x93P`\x01\x83R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x82\x84\x10a\x04LWPPP\x82\x01\x01\x81a\x03\xF5a\x04\x04a\x03\xE2V[\x80T\x84\x8A\x01\x86\x01R\x88\x95P\x87\x94\x90\x93\x01\x92\x81\x01a\x043V[`\xFF\x19\x16\x87\x82\x01R\x93\x15\x15`\x05\x1B\x86\x01\x90\x93\x01\x93P\x84\x92Pa\x03\xF5\x91Pa\x04\x04\x90Pa\x03\xE2V[P\x824a\x01jW` 6`\x03\x19\x01\x12a\x01eW`\x01`\x01`\xA0\x1B\x03a\x04\xAEa\r)V[\x16\x90\x81\x15a\x04\xCBW` \x84\x80\x85\x85\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[`d\x90` \x85Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0C`$\x82\x01RkZERO_ADDRESS`\xA0\x1B`D\x82\x01R\xFD[P\x82\x904a\x01jW` 6`\x03\x19\x01\x12a\x01eW\x815\x81R`\x02` R\x82\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15a\x058WP` \x91Q\x90\x81R\xF3[`d\x90` \x84Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\n`$\x82\x01Ri\x13\x93\xD5\x17\xD3RS\x95\x11Q`\xB2\x1B`D\x82\x01R\xFD[P\x824a\x01jW\x82`\x03\x196\x01\x12a\x01eWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\x03\x13Wa\x05\x99\x906\x90\x84\x01a\x0E\x84V[\x91`$5\x82\x81\x11a\x03\x13Wa\x05\xB1\x906\x90\x83\x01a\x0E\x84V[\x94`\xFF`\x06T\x16a\x08eWP\x82Q\x82\x81\x11a\x08RW\x80a\x05\xD1\x86Ta\x0CwV[\x94`\x1F\x95\x86\x81\x11a\x07\xE7W[P` \x90\x86\x83\x11`\x01\x14a\x07fW\x87\x92a\x07[W[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x07HWP`\x01\x91a\x06\x1E\x83Ta\x0CwV[\x81\x81\x11a\x06\xE6W[P` \x90\x82\x11`\x01\x14a\x06kW\x83\x94\x82\x93\x94\x92a\x06`W[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x81U[`\xFF\x19`\x06T\x16\x17`\x06U\x80\xF3[\x01Q\x90P\x84\x80a\x06>V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x06\xD0WP\x95\x83\x85\x96\x97\x10a\x06\xB7W[PPP\x81\x1B\x01\x81Ua\x06RV[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x06\xAAV[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x06\x97V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x07?W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x074WPPa\x06&V[\x86\x81U\x01\x84\x90a\x07&V[\x92P\x81\x92a\x07\x1DV[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x05\xF2V[\x87\x80R\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x07\xCFWP\x90\x84`\x01\x95\x94\x93\x92\x10a\x07\xB6W[PPP\x81\x1B\x01\x84Ua\x06\x07V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x07\xA9V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x07\x93V[\x90\x91P\x86\x80R\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x08IW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\x08;WPa\x05\xDDV[\x88\x81U\x84\x93P`\x01\x01a\x08.V[\x92P\x81\x92a\x08!V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[\x90` `d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x13`$\x82\x01Rr\x10S\x14\x91PQ\x16W\xD2S\x92U\x12PS\x12V\x91Q`j\x1B`D\x82\x01R\xFD[P\x914a\x01jWa\x08\xAE6a\rZV[\x90\x92\x91a\x08\xBC\x82\x85\x83a\x0E\xDFV[\x83;\x15\x93\x84\x15a\x08\xD1W[\x86a\x02E\x86a\x10\xD4V[\x92\x93P\x90\x91`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x80;\x15a\x03\tW` \x92\x87`\xA4\x92\x88Q\x96\x87\x95\x86\x94c\n\x85\xBD\x01`\xE1\x1B\x9A\x8B\x87R3\x90\x87\x01R\x16`$\x85\x01R`D\x84\x01R`\x80`d\x84\x01R\x81`\x84\x84\x01RZ\xF1\x90\x81\x15a\x02\xFCWa\x02E\x93P\x84\x91a\tIW[P`\x01`\x01`\xE0\x1B\x03\x19\x16\x148\x80\x80\x80a\x08\xC7V[a\tb\x91P` =` \x11a\x02\xF5Wa\x02\xE7\x81\x83a\x0C\xB1V[8a\t4V[P4a\x01jWa\x02Ea\tz6a\rZV[\x91a\x0E\xDFV[P\x914a\x01jW\x81`\x03\x196\x01\x12a\x01eWa\t\x9Aa\r)V[`$5\x80\x85R`\x02` R\x83\x85 T\x90\x93\x91\x92`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x92\x903\x84\x14\x80\x15a\n\x16W[a\t\xCD\x90a\x0E\xA2V[\x85\x87R` R\x85 \x92\x16\x91\x82k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x82T\x16\x17\x90U\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x84\x80\xA4\x80\xF3[P\x83\x87R`\x05` \x90\x81R\x82\x88 3\x89R\x90R\x81\x87 T`\xFF\x16a\t\xC4V[P4a\x01jW` 6`\x03\x19\x01\x12a\x01eW\x825\x81R` \x92\x83R\x81\x90 T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R\xF3[P4a\x01jW\x80`\x03\x196\x01\x12a\x01eW\x81Q\x91\x82\x82\x83Ta\n\x86\x81a\x0CwV[\x90\x81\x84R` \x95`\x01\x91\x87`\x01\x82\x16\x91\x82`\0\x14a\x04dWPP`\x01\x14a\n\xBAWPPPa\x04\x04\x92\x91a\x03\xF5\x91\x03\x85a\x0C\xB1V[\x91\x90\x86\x93P\x82\x80R\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x82\x84\x10a\n\xFDWPPP\x82\x01\x01\x81a\x03\xF5a\x04\x04a\x03\xE2V[\x80T\x84\x8A\x01\x86\x01R\x88\x95P\x87\x94\x90\x93\x01\x92\x81\x01a\n\xE4V[P\x914a\x0B\x87W` 6`\x03\x19\x01\x12a\x01eW5\x90c\xFF\xFF\xFF\xFF`\xE0\x1B\x82\x16\x80\x92\x03a\x0B\x83W` \x92Pc\x01\xFF\xC9\xA7`\xE0\x1B\x82\x14\x91\x82\x15a\x0BrW[\x82\x15a\x0BaW[PQ\x90\x15\x15\x81R\xF3[c[^\x13\x9F`\xE0\x1B\x14\x91P8a\x0BXV[c\x80\xACX\xCD`\xE0\x1B\x81\x14\x92Pa\x0BQV[\x82\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xA7W[` \x83\x10\x14a\x0C\x91WV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\x86V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0C\xD3W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x91\x90\x82Q\x92\x83\x82R`\0[\x84\x81\x10a\r\x15WPP\x82`\0` \x80\x94\x95\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[` \x81\x83\x01\x81\x01Q\x84\x83\x01\x82\x01R\x01a\x0C\xF4V[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r?WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r?WV[``\x90`\x03\x19\x01\x12a\x01eW`\x01`\x01`\xA0\x1B\x03\x90`\x045\x82\x81\x16\x81\x03a\r?W\x91`$5\x90\x81\x16\x81\x03a\r?W\x90`D5\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x92\x91\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x0C\xD3W`@Q\x91a\x0E\x12`\x1F\x82\x01`\x1F\x19\x16` \x01\x84a\x0C\xB1V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x0E/W\x82\x81` \x93\x84`\0\x96\x017\x01\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x80`\x1F\x83\x01\x12\x15a\x03\x0EW\x81` a\x0E\x9F\x935\x91\x01a\r\xE8V[\x90V[\x15a\x0E\xA9WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0E`$\x82\x01Rm\x13\x93\xD5\x17\xD0UU\x12\x13\xD4\x92V\x91Q`\x92\x1B`D\x82\x01R`d\x90\xFD[`\0\x83\x81R`\x02` \x90\x81R`@\x80\x83 T`\x01`\x01`\xA0\x1B\x03\x95\x94\x86\x16\x94\x90\x86\x16\x85\x03a\x100W\x85\x16\x94\x85\x15a\x0F\xF8Wa\x0F,\x90\x853\x14\x90\x81\x15a\x0F\xDBW[\x81\x15a\x0F\xC5W[Pa\x0E\xA2V[\x83\x83R`\x03\x82R\x80\x83 \x80T\x90\x81\x15a\x0F\xB1W`\0\x19\x91\x82\x01\x90U\x85\x84R`\x03\x83R\x81\x84 \x80T\x90\x91\x81\x14a\x0F\xB1W`\x01\x01\x90U\x85\x83R`\x02\x82R\x80\x83 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x90\x81\x16\x87\x17\x90\x91U`\x04\x90\x92R\x82 \x80T\x90\x91\x16\x90U\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x80\xA4V[cNH{q`\xE0\x1B\x85R`\x11`\x04R`$\x85\xFD[\x90P\x87\x85R`\x04\x84R\x82\x85 T\x163\x148a\x0F&V[\x86\x86R`\x05\x85R\x83\x86 3\x87R\x85R\x83\x86 T`\xFF\x16\x91Pa\x0F\x1FV[\x81QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`\x11`$\x82\x01Rp\x12S\x95\x90S\x12Q\x17\xD4\x91P\xD2T\x12QS\x95`z\x1B`D\x82\x01R`d\x90\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`\n`$\x82\x01RiWRONG_FROM`\xB0\x1B`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81` \x91\x03\x12a\x01eWQ`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x03a\r?W\x90V[\x15a\x10\xDBWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x10`$\x82\x01Ro\x15S\x94\xD0Q\x91W\xD4\x91P\xD2T\x12QS\x95`\x82\x1B`D\x82\x01R`d\x90\xFD\xFE\xA2dipfsX\"\x12 M\xCB\xBAiY\x9F&Y2c#\xD4V\xC2H* h\x9C\xFB\xD7\xE6\xA3\xE1\xEC\xE5\xE8\"`\x7F(\xA2dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static MOCKERC721_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x01\xFF\xC9\xA7\x14a\x0B\x15W\x80c\x06\xFD\xDE\x03\x14a\neW\x80c\x08\x18\x12\xFC\x14a\n5W\x80c\t^\xA7\xB3\x14a\t\x80W\x80c#\xB8r\xDD\x14a\thW\x80cB\x84.\x0E\x14a\x08\x9EW\x80cL\xD8\x8Bv\x14a\x05hW\x80ccR!\x1E\x14a\x04\xFDW\x80cp\xA0\x821\x14a\x04\x8BW\x80c\x95\xD8\x9BA\x14a\x03\x9DW\x80c\xA2,\xB4e\x14a\x03\x18W\x80c\xB8\x8DO\xDE\x14a\x01\xCBW\x80c\xC8{V\xDD\x14a\x01oWc\xE9\x85\xE9\xC5\x14a\x01\x18WPa\0\x11V[\x904a\x01jW\x80`\x03\x196\x01\x12a\x01eW`\xFF\x81` \x93a\x017a\r)V[a\x01?a\rDV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x83R`\x05\x87R\x83\x83 \x91\x16\x82R\x85R T\x91Q\x91\x16\x15\x15\x81R\xF3[a\x0B\xD7V[a\x0B\x87V[P\x904a\x01jW` \x80`\x03\x196\x01\x12a\x01eW\x91\x81Q\x92\x83\x91` \x83R``Q\x91\x82` \x85\x01R\x81[\x83\x81\x10a\x01\xB6WPP\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x81\x01\x03\x01\x90\xF3[`\x80\x81\x01Q\x87\x82\x01\x87\x01R\x86\x94P\x81\x01a\x01\x99V[P\x914a\x01jW`\x806`\x03\x19\x01\x12a\x01eWa\x01\xE6a\r)V[\x90a\x01\xEFa\rDV[\x91`D5\x90`d5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x03\x13W6`#\x82\x01\x12\x15a\x03\x0EWa\x02$\x906\x90`$\x81\x87\x015\x91\x01a\r\xE8V[\x91a\x020\x81\x86\x84a\x0E\xDFV[\x84;\x15\x94\x85\x15a\x02HW[\x87a\x02E\x87a\x10\xD4V[\x80\xF3[\x93\x94P\x91\x92\x90\x91\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x81;\x15a\x03\tW\x87` \x94a\x02\xA0\x89Q\x97\x88\x96\x87\x95\x86\x94c\n\x85\xBD\x01`\xE1\x1B\x9C\x8D\x87R3\x90\x87\x01R\x16`$\x85\x01R`D\x84\x01R`\x80`d\x84\x01R`\x84\x83\x01\x90a\x0C\xE9V[\x03\x92Z\xF1\x90\x81\x15a\x02\xFCWa\x02E\x93P\x84\x91a\x02\xCDW[P`\x01`\x01`\xE0\x1B\x03\x19\x16\x148\x80\x80\x80\x80a\x02;V[a\x02\xEF\x91P` =` \x11a\x02\xF5W[a\x02\xE7\x81\x83a\x0C\xB1V[\x81\x01\x90a\x10\xB4V[8a\x02\xB7V[P=a\x02\xDDV[PPPQ\x90=\x90\x82>=\x90\xFD[a\x10aV[a\r\x8FV[a\x0C'V[P\x904a\x01jW\x80`\x03\x196\x01\x12a\x01eWa\x032a\r)V[\x90`$5\x90\x81\x15\x15\x80\x92\x03a\x03\x99W3\x84R`\x05` R\x80\x84 \x92`\x01\x80`\xA0\x1B\x03\x16\x92\x83\x85R` R\x80\x84 `\xFF\x19\x81T\x16`\xFF\x84\x16\x17\x90UQ\x90\x81R\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1` 3\x92\xA3\x80\xF3[\x83\x80\xFD[P4a\x01jW\x80`\x03\x196\x01\x12a\x01eW\x81Q\x91\x82\x82`\x01\x93`\x01T\x94a\x03\xC3\x86a\x0CwV[\x91\x82\x85R` \x96\x87`\x01\x82\x16\x91\x82`\0\x14a\x04dWPP`\x01\x14a\x04\x08W[PPPa\x04\x04\x92\x91a\x03\xF5\x91\x03\x85a\x0C\xB1V[Q\x92\x82\x84\x93\x84R\x83\x01\x90a\x0C\xE9V[\x03\x90\xF3[\x91\x90\x86\x93P`\x01\x83R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x82\x84\x10a\x04LWPPP\x82\x01\x01\x81a\x03\xF5a\x04\x04a\x03\xE2V[\x80T\x84\x8A\x01\x86\x01R\x88\x95P\x87\x94\x90\x93\x01\x92\x81\x01a\x043V[`\xFF\x19\x16\x87\x82\x01R\x93\x15\x15`\x05\x1B\x86\x01\x90\x93\x01\x93P\x84\x92Pa\x03\xF5\x91Pa\x04\x04\x90Pa\x03\xE2V[P\x824a\x01jW` 6`\x03\x19\x01\x12a\x01eW`\x01`\x01`\xA0\x1B\x03a\x04\xAEa\r)V[\x16\x90\x81\x15a\x04\xCBW` \x84\x80\x85\x85\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[`d\x90` \x85Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0C`$\x82\x01RkZERO_ADDRESS`\xA0\x1B`D\x82\x01R\xFD[P\x82\x904a\x01jW` 6`\x03\x19\x01\x12a\x01eW\x815\x81R`\x02` R\x82\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15a\x058WP` \x91Q\x90\x81R\xF3[`d\x90` \x84Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\n`$\x82\x01Ri\x13\x93\xD5\x17\xD3RS\x95\x11Q`\xB2\x1B`D\x82\x01R\xFD[P\x824a\x01jW\x82`\x03\x196\x01\x12a\x01eWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\x03\x13Wa\x05\x99\x906\x90\x84\x01a\x0E\x84V[\x91`$5\x82\x81\x11a\x03\x13Wa\x05\xB1\x906\x90\x83\x01a\x0E\x84V[\x94`\xFF`\x06T\x16a\x08eWP\x82Q\x82\x81\x11a\x08RW\x80a\x05\xD1\x86Ta\x0CwV[\x94`\x1F\x95\x86\x81\x11a\x07\xE7W[P` \x90\x86\x83\x11`\x01\x14a\x07fW\x87\x92a\x07[W[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x07HWP`\x01\x91a\x06\x1E\x83Ta\x0CwV[\x81\x81\x11a\x06\xE6W[P` \x90\x82\x11`\x01\x14a\x06kW\x83\x94\x82\x93\x94\x92a\x06`W[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x81U[`\xFF\x19`\x06T\x16\x17`\x06U\x80\xF3[\x01Q\x90P\x84\x80a\x06>V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x06\xD0WP\x95\x83\x85\x96\x97\x10a\x06\xB7W[PPP\x81\x1B\x01\x81Ua\x06RV[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x06\xAAV[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x06\x97V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x07?W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x074WPPa\x06&V[\x86\x81U\x01\x84\x90a\x07&V[\x92P\x81\x92a\x07\x1DV[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x05\xF2V[\x87\x80R\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x07\xCFWP\x90\x84`\x01\x95\x94\x93\x92\x10a\x07\xB6W[PPP\x81\x1B\x01\x84Ua\x06\x07V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x07\xA9V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x07\x93V[\x90\x91P\x86\x80R\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x08IW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\x08;WPa\x05\xDDV[\x88\x81U\x84\x93P`\x01\x01a\x08.V[\x92P\x81\x92a\x08!V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[\x90` `d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x13`$\x82\x01Rr\x10S\x14\x91PQ\x16W\xD2S\x92U\x12PS\x12V\x91Q`j\x1B`D\x82\x01R\xFD[P\x914a\x01jWa\x08\xAE6a\rZV[\x90\x92\x91a\x08\xBC\x82\x85\x83a\x0E\xDFV[\x83;\x15\x93\x84\x15a\x08\xD1W[\x86a\x02E\x86a\x10\xD4V[\x92\x93P\x90\x91`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x80;\x15a\x03\tW` \x92\x87`\xA4\x92\x88Q\x96\x87\x95\x86\x94c\n\x85\xBD\x01`\xE1\x1B\x9A\x8B\x87R3\x90\x87\x01R\x16`$\x85\x01R`D\x84\x01R`\x80`d\x84\x01R\x81`\x84\x84\x01RZ\xF1\x90\x81\x15a\x02\xFCWa\x02E\x93P\x84\x91a\tIW[P`\x01`\x01`\xE0\x1B\x03\x19\x16\x148\x80\x80\x80a\x08\xC7V[a\tb\x91P` =` \x11a\x02\xF5Wa\x02\xE7\x81\x83a\x0C\xB1V[8a\t4V[P4a\x01jWa\x02Ea\tz6a\rZV[\x91a\x0E\xDFV[P\x914a\x01jW\x81`\x03\x196\x01\x12a\x01eWa\t\x9Aa\r)V[`$5\x80\x85R`\x02` R\x83\x85 T\x90\x93\x91\x92`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x92\x903\x84\x14\x80\x15a\n\x16W[a\t\xCD\x90a\x0E\xA2V[\x85\x87R` R\x85 \x92\x16\x91\x82k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x82T\x16\x17\x90U\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x84\x80\xA4\x80\xF3[P\x83\x87R`\x05` \x90\x81R\x82\x88 3\x89R\x90R\x81\x87 T`\xFF\x16a\t\xC4V[P4a\x01jW` 6`\x03\x19\x01\x12a\x01eW\x825\x81R` \x92\x83R\x81\x90 T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R\xF3[P4a\x01jW\x80`\x03\x196\x01\x12a\x01eW\x81Q\x91\x82\x82\x83Ta\n\x86\x81a\x0CwV[\x90\x81\x84R` \x95`\x01\x91\x87`\x01\x82\x16\x91\x82`\0\x14a\x04dWPP`\x01\x14a\n\xBAWPPPa\x04\x04\x92\x91a\x03\xF5\x91\x03\x85a\x0C\xB1V[\x91\x90\x86\x93P\x82\x80R\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x82\x84\x10a\n\xFDWPPP\x82\x01\x01\x81a\x03\xF5a\x04\x04a\x03\xE2V[\x80T\x84\x8A\x01\x86\x01R\x88\x95P\x87\x94\x90\x93\x01\x92\x81\x01a\n\xE4V[P\x914a\x0B\x87W` 6`\x03\x19\x01\x12a\x01eW5\x90c\xFF\xFF\xFF\xFF`\xE0\x1B\x82\x16\x80\x92\x03a\x0B\x83W` \x92Pc\x01\xFF\xC9\xA7`\xE0\x1B\x82\x14\x91\x82\x15a\x0BrW[\x82\x15a\x0BaW[PQ\x90\x15\x15\x81R\xF3[c[^\x13\x9F`\xE0\x1B\x14\x91P8a\x0BXV[c\x80\xACX\xCD`\xE0\x1B\x81\x14\x92Pa\x0BQV[\x82\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xA7W[` \x83\x10\x14a\x0C\x91WV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\x86V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0C\xD3W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x91\x90\x82Q\x92\x83\x82R`\0[\x84\x81\x10a\r\x15WPP\x82`\0` \x80\x94\x95\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[` \x81\x83\x01\x81\x01Q\x84\x83\x01\x82\x01R\x01a\x0C\xF4V[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r?WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r?WV[``\x90`\x03\x19\x01\x12a\x01eW`\x01`\x01`\xA0\x1B\x03\x90`\x045\x82\x81\x16\x81\x03a\r?W\x91`$5\x90\x81\x16\x81\x03a\r?W\x90`D5\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x92\x91\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x0C\xD3W`@Q\x91a\x0E\x12`\x1F\x82\x01`\x1F\x19\x16` \x01\x84a\x0C\xB1V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x0E/W\x82\x81` \x93\x84`\0\x96\x017\x01\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x80`\x1F\x83\x01\x12\x15a\x03\x0EW\x81` a\x0E\x9F\x935\x91\x01a\r\xE8V[\x90V[\x15a\x0E\xA9WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0E`$\x82\x01Rm\x13\x93\xD5\x17\xD0UU\x12\x13\xD4\x92V\x91Q`\x92\x1B`D\x82\x01R`d\x90\xFD[`\0\x83\x81R`\x02` \x90\x81R`@\x80\x83 T`\x01`\x01`\xA0\x1B\x03\x95\x94\x86\x16\x94\x90\x86\x16\x85\x03a\x100W\x85\x16\x94\x85\x15a\x0F\xF8Wa\x0F,\x90\x853\x14\x90\x81\x15a\x0F\xDBW[\x81\x15a\x0F\xC5W[Pa\x0E\xA2V[\x83\x83R`\x03\x82R\x80\x83 \x80T\x90\x81\x15a\x0F\xB1W`\0\x19\x91\x82\x01\x90U\x85\x84R`\x03\x83R\x81\x84 \x80T\x90\x91\x81\x14a\x0F\xB1W`\x01\x01\x90U\x85\x83R`\x02\x82R\x80\x83 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x90\x81\x16\x87\x17\x90\x91U`\x04\x90\x92R\x82 \x80T\x90\x91\x16\x90U\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x80\xA4V[cNH{q`\xE0\x1B\x85R`\x11`\x04R`$\x85\xFD[\x90P\x87\x85R`\x04\x84R\x82\x85 T\x163\x148a\x0F&V[\x86\x86R`\x05\x85R\x83\x86 3\x87R\x85R\x83\x86 T`\xFF\x16\x91Pa\x0F\x1FV[\x81QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`\x11`$\x82\x01Rp\x12S\x95\x90S\x12Q\x17\xD4\x91P\xD2T\x12QS\x95`z\x1B`D\x82\x01R`d\x90\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`\n`$\x82\x01RiWRONG_FROM`\xB0\x1B`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90\x81` \x91\x03\x12a\x01eWQ`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x03a\r?W\x90V[\x15a\x10\xDBWV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x10`$\x82\x01Ro\x15S\x94\xD0Q\x91W\xD4\x91P\xD2T\x12QS\x95`\x82\x1B`D\x82\x01R`d\x90\xFD\xFE\xA2dipfsX\"\x12 M\xCB\xBAiY\x9F&Y2c#\xD4V\xC2H* h\x9C\xFB\xD7\xE6\xA3\xE1\xEC\xE5\xE8\"`\x7F(\xA2dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static MOCKERC721_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct MockERC721(::ethers::contract::Contract); - impl ::core::clone::Clone for MockERC721 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockERC721 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockERC721 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockERC721 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(MockERC721)).field(&self.address()).finish() - } - } - impl MockERC721 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - MOCKERC721_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKERC721_ABI.clone(), - MOCKERC721_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getApproved` (0x081812fc) function - pub fn get_approved( - &self, - p0: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([8, 24, 18, 252], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `initialize` (0x4cd88b76) function - pub fn initialize( - &self, - name: ::std::string::String, - symbol: ::std::string::String, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([76, 216, 139, 118], (name, symbol)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function - pub fn is_approved_for_all( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([233, 133, 233, 197], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ownerOf` (0x6352211e) function - pub fn owner_of( - &self, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([99, 82, 33, 30], id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeTransferFrom` (0x42842e0e) function - pub fn safe_transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([66, 132, 46, 14], (from, to, id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeTransferFrom` (0xb88d4fde) function - pub fn safe_transfer_from_with_from_and_to_and_data( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([184, 141, 79, 222], (from, to, id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setApprovalForAll` (0xa22cb465) function - pub fn set_approval_for_all( - &self, - operator: ::ethers::core::types::Address, - approved: bool, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([162, 44, 180, 101], (operator, approved)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `supportsInterface` (0x01ffc9a7) function - pub fn supports_interface( - &self, - interface_id: [u8; 4], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([1, 255, 201, 167], interface_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `tokenURI` (0xc87b56dd) function - pub fn token_uri( - &self, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([200, 123, 86, 221], id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, id)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `ApprovalForAll` event - pub fn approval_for_all_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalForAllFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - MockERC721Events, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for MockERC721 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub id: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")] - pub struct ApprovalForAllFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum MockERC721Events { - ApprovalFilter(ApprovalFilter), - ApprovalForAllFilter(ApprovalForAllFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for MockERC721Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(MockERC721Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) { - return Ok(MockERC721Events::ApprovalForAllFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(MockERC721Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for MockERC721Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ApprovalForAllFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC721Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for MockERC721Events { - fn from(value: ApprovalForAllFilter) -> Self { - Self::ApprovalForAllFilter(value) - } - } - impl ::core::convert::From for MockERC721Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getApproved", abi = "getApproved(uint256)")] - pub struct GetApprovedCall(pub ::ethers::core::types::U256); - ///Container type for all input parameters for the `initialize` function with signature `initialize(string,string)` and selector `0x4cd88b76` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "initialize", abi = "initialize(string,string)")] - pub struct InitializeCall { - pub name: ::std::string::String, - pub symbol: ::std::string::String, - } - ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")] - pub struct IsApprovedForAllCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")] - pub struct OwnerOfCall { - pub id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "safeTransferFrom", - abi = "safeTransferFrom(address,address,uint256)" - )] - pub struct SafeTransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "safeTransferFrom", - abi = "safeTransferFrom(address,address,uint256,bytes)" - )] - pub struct SafeTransferFromWithFromAndToAndDataCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")] - pub struct SetApprovalForAllCall { - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] - pub struct SupportsInterfaceCall { - pub interface_id: [u8; 4], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "tokenURI", abi = "tokenURI(uint256)")] - pub struct TokenURICall { - pub id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum MockERC721Calls { - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - GetApproved(GetApprovedCall), - Initialize(InitializeCall), - IsApprovedForAll(IsApprovedForAllCall), - Name(NameCall), - OwnerOf(OwnerOfCall), - SafeTransferFrom(SafeTransferFromCall), - SafeTransferFromWithFromAndToAndData(SafeTransferFromWithFromAndToAndDataCall), - SetApprovalForAll(SetApprovalForAllCall), - SupportsInterface(SupportsInterfaceCall), - Symbol(SymbolCall), - TokenURI(TokenURICall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for MockERC721Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetApproved(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Initialize(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::IsApprovedForAll(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::OwnerOf(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SafeTransferFrom(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SafeTransferFromWithFromAndToAndData(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SetApprovalForAll(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SupportsInterface(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TokenURI(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockERC721Calls { - fn encode(self) -> Vec { - match self { - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetApproved(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Initialize(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::IsApprovedForAll(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OwnerOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SafeTransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SafeTransferFromWithFromAndToAndData(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetApprovalForAll(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SupportsInterface(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TokenURI(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for MockERC721Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::GetApproved(element) => ::core::fmt::Display::fmt(element, f), - Self::Initialize(element) => ::core::fmt::Display::fmt(element, f), - Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f), - Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f), - Self::SafeTransferFromWithFromAndToAndData(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TokenURI(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: GetApprovedCall) -> Self { - Self::GetApproved(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: InitializeCall) -> Self { - Self::Initialize(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: IsApprovedForAllCall) -> Self { - Self::IsApprovedForAll(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: OwnerOfCall) -> Self { - Self::OwnerOf(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: SafeTransferFromCall) -> Self { - Self::SafeTransferFrom(value) - } - } - impl ::core::convert::From - for MockERC721Calls { - fn from(value: SafeTransferFromWithFromAndToAndDataCall) -> Self { - Self::SafeTransferFromWithFromAndToAndData(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: SetApprovalForAllCall) -> Self { - Self::SetApprovalForAll(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: SupportsInterfaceCall) -> Self { - Self::SupportsInterface(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: TokenURICall) -> Self { - Self::TokenURI(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetApprovedReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IsApprovedForAllReturn(pub bool); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct OwnerOfReturn { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SupportsInterfaceReturn(pub bool); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TokenURIReturn(pub ::std::string::String); -} diff --git a/crates/bindings/src/mock_strategy.rs b/crates/bindings/src/mock_strategy.rs deleted file mode 100644 index 75263f109..000000000 --- a/crates/bindings/src/mock_strategy.rs +++ /dev/null @@ -1,1165 +0,0 @@ -pub use mock_strategy::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod mock_strategy { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("dfmm_"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("computeSwapConstant"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "computeSwapConstant", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("dfmm"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("dfmm"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPoolParams"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getPoolParams"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("params"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("init"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("init"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "swapConstantGrowth", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("update"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("update"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("validateAllocateOrDeallocate"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "validateAllocateOrDeallocate", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("invariant"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("validateSwap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("validateSwap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "swapConstantGrowth", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("liquidityDelta"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("int256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveX"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reserveY"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("totalLiquidity"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("InvalidSender"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidSender"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidUpdateCode"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidUpdateCode"), - inputs: ::std::vec![], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("NotDFMM"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NotDFMM"), - inputs: ::std::vec![], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static MOCKSTRATEGY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\xA0\x80`@R4a\0\xDCW`@Q`\x1Fa\x08e8\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xC6W\x80\x84\x92` \x94`@R\x839\x81\x01\x03\x12a\0vWQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0qW`\x80R`@Qa\x07;\x90\x81a\x01*\x829`\x80Q\x81a\x01B\x01R\xF3[`\0\x80\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80b.RK\x14a\x03\x9FW\x80ch\xBD>8\x14a\x03eW\x80cs\xCB-\x03\x14a\x02\x9AW\x80c\x8A\x04\xBD\xD5\x14a\x01\x87W\x80c\xAC\xAD)\x89\x14a\x01qW\x80c\xAF\xBA\x13\xC4\x14a\x01/Wc\xDC\x17\x83U\x14a\0\xCAWPa\0\x11V[\x904a\x01*W` \x80`\x03\x196\x01\x12a\x01%W\x91\x81Q\x92\x83\x91` \x83R``Q\x91\x82` \x85\x01R\x81[\x83\x81\x10a\x01\x10WPP\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x81\x01\x03\x01\x90\xF3[`\x80\x81\x01Q\x87\x82\x01\x87\x01R\x86\x94P\x81\x01a\0\xF3V[a\x04\xF3V[a\x04\xA3V[P4a\x01*W6`\x03\x19\x01\x12a\x01%WQ\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[P4a\x01*Wa\x01\x806a\x05\xECV[PPPP\x80\xF3[P4a\x01*Wa\x01\x966a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x03a\x02\x10WPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x02\xB5\xE3\xAF\x16\xB1\x88\0\0\x80gEc\x91\x82D\xF4\0\0\x92[Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[\x03\x90\xF3[`\t\x81\x03a\x02QWPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x05k\xC7^-c\x10\0\0h\x06\x81U\xA46v\xE0\0\0\x90g\x8A\xC7#\x04\x89\xE8\0\0\x92a\x01\xE1V[`\x08\x14a\x02dW[a\x02\x0C\x93\x94\x95a\x01\xE1V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90Ph\x06\x81U\xA46v\xE0\0\0a\x02YV[P4a\x01*Wa\x02\xA96a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x14a\x030W[`\x02\x14a\x03\x03W[a\x02\x0C\x93\x94\x95Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90P\x80a\x02\xD2V[g\r\xE0\xB6\xB3\xA7d\0\0\x95P`\x01\x94Pg7\x82\xDA\xCE\x9D\x90\0\0\x93Pg)\xA2$\x1A\xF6,\0\0\x92Pg\x1B\xC1mgN\xC8\0\0\x91Pa\x02\xCAV[P\x904a\x01*W`\xC0\x91a\x03x6a\x05\xECV[PPPP\x80\x82Q\x92\x81\x84R\x81` \x85\x01R\x83\x01R\x80``\x83\x01R\x80`\x80\x83\x01R`\xA0\x82\x01R\xF3[P\x904a\x04\xA3W\x80`\x03\x196\x01\x12a\x01%Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92`$\x805\x85\x81\x11a\x04\x9EW6`#\x82\x01\x12\x15a\x04\x99W\x80\x83\x015\x92\x86\x84\x11a\x04\x87W\x84Q\x96`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x88\x01\x90\x81\x11\x88\x82\x10\x17a\x04uW\x85R\x83\x87R6\x83\x85\x84\x01\x01\x11a\x04#WP\x91` \x95\x81\x87\x93\x87\x95\x01\x84\x83\x017\x01\x01RQ\x90\x81R\xF3[`\x84\x90`'\x84` \x88Q\x93bF\x1B\xCD`\xE5\x1B\x85R\x84\x01R\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R\xFD[cNH{q`\xE0\x1B\x87R`A\x82R\x83\x87\xFD[cNH{q`\xE0\x1B\x86R`A\x90R\x81\x85\xFD[a\x05\x93V[a\x05CV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90```\x03\x19\x83\x01\x12a\x01%W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\x07\0W\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x04\x9EW\x80`#\x83\x01\x12\x15a\x04\x99W\x81`\x04\x015\x93\x84\x11a\x06\xA7W`$\x84\x83\x01\x01\x11a\x06NW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xC5J`\xF7\x11\xAC\x0C\xBD\xFD;\x8F\x93\x12\xBC\xD0<\xA0^\x14(\x07\x91\xB2\xA1@\x9F\xF4\x9D\xE4'\xD7\xB2dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static MOCKSTRATEGY_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80b.RK\x14a\x03\x9FW\x80ch\xBD>8\x14a\x03eW\x80cs\xCB-\x03\x14a\x02\x9AW\x80c\x8A\x04\xBD\xD5\x14a\x01\x87W\x80c\xAC\xAD)\x89\x14a\x01qW\x80c\xAF\xBA\x13\xC4\x14a\x01/Wc\xDC\x17\x83U\x14a\0\xCAWPa\0\x11V[\x904a\x01*W` \x80`\x03\x196\x01\x12a\x01%W\x91\x81Q\x92\x83\x91` \x83R``Q\x91\x82` \x85\x01R\x81[\x83\x81\x10a\x01\x10WPP\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x81\x01\x03\x01\x90\xF3[`\x80\x81\x01Q\x87\x82\x01\x87\x01R\x86\x94P\x81\x01a\0\xF3V[a\x04\xF3V[a\x04\xA3V[P4a\x01*W6`\x03\x19\x01\x12a\x01%WQ\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[P4a\x01*Wa\x01\x806a\x05\xECV[PPPP\x80\xF3[P4a\x01*Wa\x01\x966a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x03a\x02\x10WPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x02\xB5\xE3\xAF\x16\xB1\x88\0\0\x80gEc\x91\x82D\xF4\0\0\x92[Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[\x03\x90\xF3[`\t\x81\x03a\x02QWPPPPPP`\x01a\x02\x0Cg\r\xE0\xB6\xB3\xA7d\0\0\x92h\x05k\xC7^-c\x10\0\0h\x06\x81U\xA46v\xE0\0\0\x90g\x8A\xC7#\x04\x89\xE8\0\0\x92a\x01\xE1V[`\x08\x14a\x02dW[a\x02\x0C\x93\x94\x95a\x01\xE1V[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90Ph\x06\x81U\xA46v\xE0\0\0a\x02YV[P4a\x01*Wa\x02\xA96a\x05\xECV[\x84\x93P\x83\x92P\x82\x91\x82\x91` \x90\x82\x01\x82\x90\x03\x12a\x01%W5`\x01\x81\x14a\x030W[`\x02\x14a\x03\x03W[a\x02\x0C\x93\x94\x95Q\x95\x86\x95\x86\x91\x92`\x80\x93\x96\x95\x94\x91\x96`\xA0\x84\x01\x97\x15\x15\x84R` \x84\x01R`@\x83\x01R``\x82\x01R\x01RV[Pg\r\xE0\xB6\xB3\xA7d\0\0\x93P`\x01\x92Pg\x8A\xC7#\x04\x89\xE8\0\0\x91Ph\x05k\xC7^-c\x10\0\0\x90P\x80a\x02\xD2V[g\r\xE0\xB6\xB3\xA7d\0\0\x95P`\x01\x94Pg7\x82\xDA\xCE\x9D\x90\0\0\x93Pg)\xA2$\x1A\xF6,\0\0\x92Pg\x1B\xC1mgN\xC8\0\0\x91Pa\x02\xCAV[P\x904a\x01*W`\xC0\x91a\x03x6a\x05\xECV[PPPP\x80\x82Q\x92\x81\x84R\x81` \x85\x01R\x83\x01R\x80``\x83\x01R\x80`\x80\x83\x01R`\xA0\x82\x01R\xF3[P\x904a\x04\xA3W\x80`\x03\x196\x01\x12a\x01%Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92`$\x805\x85\x81\x11a\x04\x9EW6`#\x82\x01\x12\x15a\x04\x99W\x80\x83\x015\x92\x86\x84\x11a\x04\x87W\x84Q\x96`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x88\x01\x90\x81\x11\x88\x82\x10\x17a\x04uW\x85R\x83\x87R6\x83\x85\x84\x01\x01\x11a\x04#WP\x91` \x95\x81\x87\x93\x87\x95\x01\x84\x83\x017\x01\x01RQ\x90\x81R\xF3[`\x84\x90`'\x84` \x88Q\x93bF\x1B\xCD`\xE5\x1B\x85R\x84\x01R\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R\xFD[cNH{q`\xE0\x1B\x87R`A\x82R\x83\x87\xFD[cNH{q`\xE0\x1B\x86R`A\x90R\x81\x85\xFD[a\x05\x93V[a\x05CV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90```\x03\x19\x83\x01\x12a\x01%W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\x07\0W\x91`$5\x91`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x04\x9EW\x80`#\x83\x01\x12\x15a\x04\x99W\x81`\x04\x015\x93\x84\x11a\x06\xA7W`$\x84\x83\x01\x01\x11a\x06NW`$\x01\x91\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xC5J`\xF7\x11\xAC\x0C\xBD\xFD;\x8F\x93\x12\xBC\xD0<\xA0^\x14(\x07\x91\xB2\xA1@\x9F\xF4\x9D\xE4'\xD7\xB2dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static MOCKSTRATEGY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct MockStrategy(::ethers::contract::Contract); - impl ::core::clone::Clone for MockStrategy { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockStrategy { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockStrategy { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockStrategy { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(MockStrategy)) - .field(&self.address()) - .finish() - } - } - impl MockStrategy { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - MOCKSTRATEGY_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKSTRATEGY_ABI.clone(), - MOCKSTRATEGY_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `computeSwapConstant` (0x002e524b) function - pub fn compute_swap_constant( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([0, 46, 82, 75], (pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `dfmm` (0xafba13c4) function - pub fn dfmm( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([175, 186, 19, 196], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolParams` (0xdc178355) function - pub fn get_pool_params( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Bytes, - > { - self.0 - .method_hash([220, 23, 131, 85], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `init` (0x73cb2d03) function - pub fn init( - &self, - p0: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([115, 203, 45, 3], (p0, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `update` (0xacad2989) function - pub fn update( - &self, - sender: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([172, 173, 41, 137], (sender, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateAllocateOrDeallocate` (0x8a04bdd5) function - pub fn validate_allocate_or_deallocate( - &self, - p0: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([138, 4, 189, 213], (p0, pool_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateSwap` (0x68bd3e38) function - pub fn validate_swap( - &self, - p0: ::ethers::core::types::Address, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::I256, - ::ethers::core::types::I256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([104, 189, 62, 56], (p0, pool_id, data)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for MockStrategy { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `InvalidSender` with signature `InvalidSender()` and selector `0xddb5de5e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSender", abi = "InvalidSender()")] - pub struct InvalidSender; - ///Custom Error type `InvalidUpdateCode` with signature `InvalidUpdateCode()` and selector `0x235d2b3d` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidUpdateCode", abi = "InvalidUpdateCode()")] - pub struct InvalidUpdateCode; - ///Custom Error type `NotDFMM` with signature `NotDFMM()` and selector `0x6853cba7` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NotDFMM", abi = "NotDFMM()")] - pub struct NotDFMM; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum MockStrategyErrors { - InvalidSender(InvalidSender), - InvalidUpdateCode(InvalidUpdateCode), - NotDFMM(NotDFMM), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for MockStrategyErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidSender(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidUpdateCode(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NotDFMM(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockStrategyErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::InvalidSender(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidUpdateCode(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NotDFMM(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for MockStrategyErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for MockStrategyErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::InvalidSender(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidUpdateCode(element) => ::core::fmt::Display::fmt(element, f), - Self::NotDFMM(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for MockStrategyErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for MockStrategyErrors { - fn from(value: InvalidSender) -> Self { - Self::InvalidSender(value) - } - } - impl ::core::convert::From for MockStrategyErrors { - fn from(value: InvalidUpdateCode) -> Self { - Self::InvalidUpdateCode(value) - } - } - impl ::core::convert::From for MockStrategyErrors { - fn from(value: NotDFMM) -> Self { - Self::NotDFMM(value) - } - } - ///Container type for all input parameters for the `computeSwapConstant` function with signature `computeSwapConstant(uint256,bytes)` and selector `0x002e524b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "computeSwapConstant", abi = "computeSwapConstant(uint256,bytes)")] - pub struct ComputeSwapConstantCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `dfmm` function with signature `dfmm()` and selector `0xafba13c4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "dfmm", abi = "dfmm()")] - pub struct DfmmCall; - ///Container type for all input parameters for the `getPoolParams` function with signature `getPoolParams(uint256)` and selector `0xdc178355` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolParams", abi = "getPoolParams(uint256)")] - pub struct GetPoolParamsCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `init` function with signature `init(address,uint256,bytes)` and selector `0x73cb2d03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "init", abi = "init(address,uint256,bytes)")] - pub struct InitCall { - pub p0: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `update` function with signature `update(address,uint256,bytes)` and selector `0xacad2989` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "update", abi = "update(address,uint256,bytes)")] - pub struct UpdateCall { - pub sender: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `validateAllocateOrDeallocate` function with signature `validateAllocateOrDeallocate(address,uint256,bytes)` and selector `0x8a04bdd5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "validateAllocateOrDeallocate", - abi = "validateAllocateOrDeallocate(address,uint256,bytes)" - )] - pub struct ValidateAllocateOrDeallocateCall { - pub p0: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `validateSwap` function with signature `validateSwap(address,uint256,bytes)` and selector `0x68bd3e38` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "validateSwap", abi = "validateSwap(address,uint256,bytes)")] - pub struct ValidateSwapCall { - pub p0: ::ethers::core::types::Address, - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum MockStrategyCalls { - ComputeSwapConstant(ComputeSwapConstantCall), - Dfmm(DfmmCall), - GetPoolParams(GetPoolParamsCall), - Init(InitCall), - Update(UpdateCall), - ValidateAllocateOrDeallocate(ValidateAllocateOrDeallocateCall), - ValidateSwap(ValidateSwapCall), - } - impl ::ethers::core::abi::AbiDecode for MockStrategyCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ComputeSwapConstant(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Dfmm(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPoolParams(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Init(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Update(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ValidateAllocateOrDeallocate(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ValidateSwap(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockStrategyCalls { - fn encode(self) -> Vec { - match self { - Self::ComputeSwapConstant(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Dfmm(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolParams(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Init(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Update(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ValidateAllocateOrDeallocate(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ValidateSwap(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for MockStrategyCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ComputeSwapConstant(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Dfmm(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolParams(element) => ::core::fmt::Display::fmt(element, f), - Self::Init(element) => ::core::fmt::Display::fmt(element, f), - Self::Update(element) => ::core::fmt::Display::fmt(element, f), - Self::ValidateAllocateOrDeallocate(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::ValidateSwap(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockStrategyCalls { - fn from(value: ComputeSwapConstantCall) -> Self { - Self::ComputeSwapConstant(value) - } - } - impl ::core::convert::From for MockStrategyCalls { - fn from(value: DfmmCall) -> Self { - Self::Dfmm(value) - } - } - impl ::core::convert::From for MockStrategyCalls { - fn from(value: GetPoolParamsCall) -> Self { - Self::GetPoolParams(value) - } - } - impl ::core::convert::From for MockStrategyCalls { - fn from(value: InitCall) -> Self { - Self::Init(value) - } - } - impl ::core::convert::From for MockStrategyCalls { - fn from(value: UpdateCall) -> Self { - Self::Update(value) - } - } - impl ::core::convert::From for MockStrategyCalls { - fn from(value: ValidateAllocateOrDeallocateCall) -> Self { - Self::ValidateAllocateOrDeallocate(value) - } - } - impl ::core::convert::From for MockStrategyCalls { - fn from(value: ValidateSwapCall) -> Self { - Self::ValidateSwap(value) - } - } - ///Container type for all return fields from the `computeSwapConstant` function with signature `computeSwapConstant(uint256,bytes)` and selector `0x002e524b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeSwapConstantReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `dfmm` function with signature `dfmm()` and selector `0xafba13c4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DfmmReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getPoolParams` function with signature `getPoolParams(uint256)` and selector `0xdc178355` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolParamsReturn { - pub params: ::ethers::core::types::Bytes, - } - ///Container type for all return fields from the `init` function with signature `init(address,uint256,bytes)` and selector `0x73cb2d03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InitReturn { - pub valid: bool, - pub swap_constant_growth: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `validateAllocateOrDeallocate` function with signature `validateAllocateOrDeallocate(address,uint256,bytes)` and selector `0x8a04bdd5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ValidateAllocateOrDeallocateReturn { - pub valid: bool, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `validateSwap` function with signature `validateSwap(address,uint256,bytes)` and selector `0x68bd3e38` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ValidateSwapReturn { - pub valid: bool, - pub swap_constant_growth: ::ethers::core::types::I256, - pub liquidity_delta: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub total_liquidity: ::ethers::core::types::U256, - } -} diff --git a/crates/bindings/src/portfolio_tracker.rs b/crates/bindings/src/portfolio_tracker.rs deleted file mode 100644 index c30e31bd9..000000000 --- a/crates/bindings/src/portfolio_tracker.rs +++ /dev/null @@ -1,342 +0,0 @@ -pub use portfolio_tracker::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod portfolio_tracker { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("logPortfolio"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("logPortfolio"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("tokenX"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("tokenY"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("GhostEvent"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("GhostEvent"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("ghosted"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("LogPortfolio"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("LogPortfolio"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("tokenXBalance"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("tokenYBalance"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("blockTimestamp"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static PORTFOLIOTRACKER_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\0\x19W`@Qa\x03\\\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@\x81\x81R`\x04\x91\x826\x10\x15a\0sW[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x85\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x90\x815`\xE0\x1Cc;=\x82\x1F\x14a\0\x8BWPa\0\x12V[\x92\x90\x924a\x02\0WP\x81`\x03\x196\x01\x12a\x01\xA8W`\x01`\x01`\xA0\x1B\x03\x815\x81\x81\x16\x92\x90\x83\x90\x03a\x01\xFCW`$5\x91\x82\x16\x80\x92\x03a\x01\xFCW\x82;\x15a\x01\xBEW\x83Q\x92\x83\x91cp\xA0\x821`\xE0\x1B\x91\x82\x84R3\x82\x85\x01R\x83`$` \x95\x86\x93Z\xFA\x94\x85\x15a\x01\xF2W\x87\x95a\x01\xC3W[P\x83;\x15a\x01\xBEW`$\x83\x92\x87Q\x95\x86\x93\x84\x92\x83R3\x90\x83\x01RZ\xFA\x91\x82\x15a\x01\xB4W\x85\x92a\x01ZW[P\x92``\x92\x91\x7FT\xA6\xD40z\x11\x95u\xDE\x15\xB0\xAD\x97z\xB1\x87\xCD\xA7\xE9\x7F00\x8A\xF0\xA7\x1D#^U_\xF4\xE6\x94\x82Q\x93\x84R\x83\x01RB\x90\x82\x01R\xA1\x80\xF3[\x92\x91P\x92\x83\x83\x81=\x83\x11a\x01\xADW[a\x01s\x81\x83a\x02\xEEV[\x81\x01\x03\x12a\x01\xA8W\x91Q\x91\x92\x90\x91\x90\x7FT\xA6\xD40z\x11\x95u\xDE\x15\xB0\xAD\x97z\xB1\x87\xCD\xA7\xE9\x7F00\x8A\xF0\xA7\x1D#^U_\xF4\xE6a\x01!V[a\x02KV[P=a\x01iV[\x84Q=\x87\x82>=\x90\xFD[a\x02\x9BV[\x90\x94P\x82\x81\x81=\x83\x11a\x01\xEBW[a\x01\xDB\x81\x83a\x02\xEEV[\x81\x01\x03\x12a\x01\xA8WQ\x938a\0\xF7V[P=a\x01\xD1V[\x86Q=\x89\x82>=\x90\xFD[\x84\x80\xFD[` `\x84\x92bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\x10W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD\xFE\xA2dipfsX\"\x12 \xF1\x83N!>\xA9K-\x9F\xC4\x1F\x7F\xCB\xE2\xB7N\xE2\xB49\xE0\xA3\xBD\x7F\x02\x08\x1Ae\xAB\x1A!7!dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static PORTFOLIOTRACKER_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@\x81\x81R`\x04\x91\x826\x10\x15a\0sW[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x85\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x90\x815`\xE0\x1Cc;=\x82\x1F\x14a\0\x8BWPa\0\x12V[\x92\x90\x924a\x02\0WP\x81`\x03\x196\x01\x12a\x01\xA8W`\x01`\x01`\xA0\x1B\x03\x815\x81\x81\x16\x92\x90\x83\x90\x03a\x01\xFCW`$5\x91\x82\x16\x80\x92\x03a\x01\xFCW\x82;\x15a\x01\xBEW\x83Q\x92\x83\x91cp\xA0\x821`\xE0\x1B\x91\x82\x84R3\x82\x85\x01R\x83`$` \x95\x86\x93Z\xFA\x94\x85\x15a\x01\xF2W\x87\x95a\x01\xC3W[P\x83;\x15a\x01\xBEW`$\x83\x92\x87Q\x95\x86\x93\x84\x92\x83R3\x90\x83\x01RZ\xFA\x91\x82\x15a\x01\xB4W\x85\x92a\x01ZW[P\x92``\x92\x91\x7FT\xA6\xD40z\x11\x95u\xDE\x15\xB0\xAD\x97z\xB1\x87\xCD\xA7\xE9\x7F00\x8A\xF0\xA7\x1D#^U_\xF4\xE6\x94\x82Q\x93\x84R\x83\x01RB\x90\x82\x01R\xA1\x80\xF3[\x92\x91P\x92\x83\x83\x81=\x83\x11a\x01\xADW[a\x01s\x81\x83a\x02\xEEV[\x81\x01\x03\x12a\x01\xA8W\x91Q\x91\x92\x90\x91\x90\x7FT\xA6\xD40z\x11\x95u\xDE\x15\xB0\xAD\x97z\xB1\x87\xCD\xA7\xE9\x7F00\x8A\xF0\xA7\x1D#^U_\xF4\xE6a\x01!V[a\x02KV[P=a\x01iV[\x84Q=\x87\x82>=\x90\xFD[a\x02\x9BV[\x90\x94P\x82\x81\x81=\x83\x11a\x01\xEBW[a\x01\xDB\x81\x83a\x02\xEEV[\x81\x01\x03\x12a\x01\xA8WQ\x938a\0\xF7V[P=a\x01\xD1V[\x86Q=\x89\x82>=\x90\xFD[\x84\x80\xFD[` `\x84\x92bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\x10W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD\xFE\xA2dipfsX\"\x12 \xF1\x83N!>\xA9K-\x9F\xC4\x1F\x7F\xCB\xE2\xB7N\xE2\xB49\xE0\xA3\xBD\x7F\x02\x08\x1Ae\xAB\x1A!7!dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static PORTFOLIOTRACKER_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct PortfolioTracker(::ethers::contract::Contract); - impl ::core::clone::Clone for PortfolioTracker { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for PortfolioTracker { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for PortfolioTracker { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for PortfolioTracker { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(PortfolioTracker)) - .field(&self.address()) - .finish() - } - } - impl PortfolioTracker { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - PORTFOLIOTRACKER_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - PORTFOLIOTRACKER_ABI.clone(), - PORTFOLIOTRACKER_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `logPortfolio` (0x3b3d821f) function - pub fn log_portfolio( - &self, - token_x: ::ethers::core::types::Address, - token_y: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([59, 61, 130, 31], (token_x, token_y)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `GhostEvent` event - pub fn ghost_event_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - GhostEventFilter, - > { - self.0.event() - } - ///Gets the contract's `LogPortfolio` event - pub fn log_portfolio_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogPortfolioFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - PortfolioTrackerEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for PortfolioTracker { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "GhostEvent", abi = "GhostEvent(bool)")] - pub struct GhostEventFilter { - pub ghosted: bool, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "LogPortfolio", abi = "LogPortfolio(uint256,uint256,uint256)")] - pub struct LogPortfolioFilter { - pub token_x_balance: ::ethers::core::types::U256, - pub token_y_balance: ::ethers::core::types::U256, - pub block_timestamp: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum PortfolioTrackerEvents { - GhostEventFilter(GhostEventFilter), - LogPortfolioFilter(LogPortfolioFilter), - } - impl ::ethers::contract::EthLogDecode for PortfolioTrackerEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = GhostEventFilter::decode_log(log) { - return Ok(PortfolioTrackerEvents::GhostEventFilter(decoded)); - } - if let Ok(decoded) = LogPortfolioFilter::decode_log(log) { - return Ok(PortfolioTrackerEvents::LogPortfolioFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for PortfolioTrackerEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::GhostEventFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogPortfolioFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - } - } - } - impl ::core::convert::From for PortfolioTrackerEvents { - fn from(value: GhostEventFilter) -> Self { - Self::GhostEventFilter(value) - } - } - impl ::core::convert::From for PortfolioTrackerEvents { - fn from(value: LogPortfolioFilter) -> Self { - Self::LogPortfolioFilter(value) - } - } - ///Container type for all input parameters for the `logPortfolio` function with signature `logPortfolio(address,address)` and selector `0x3b3d821f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "logPortfolio", abi = "logPortfolio(address,address)")] - pub struct LogPortfolioCall { - pub token_x: ::ethers::core::types::Address, - pub token_y: ::ethers::core::types::Address, - } -} diff --git a/crates/bindings/src/safe_transfer_lib.rs b/crates/bindings/src/safe_transfer_lib.rs deleted file mode 100644 index 2d2b82da0..000000000 --- a/crates/bindings/src/safe_transfer_lib.rs +++ /dev/null @@ -1,125 +0,0 @@ -pub use safe_transfer_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod safe_transfer_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static SAFETRANSFERLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x1BW`@Q`\x94\x90\x81a\0i\x8290\x81PP\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 J\xE2\xFA\xB0hV=T\xEB\xCA\xE568\x02\xC7f\xC8`\xEE=\xB6a\x01\xA0\x89\xBAS\xA5>\xFC\x13\xF6dsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static SAFETRANSFERLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 J\xE2\xFA\xB0hV=T\xEB\xCA\xE568\x02\xC7f\xC8`\xEE=\xB6a\x01\xA0\x89\xBAS\xA5>\xFC\x13\xF6dsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static SAFETRANSFERLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct SafeTransferLib(::ethers::contract::Contract); - impl ::core::clone::Clone for SafeTransferLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for SafeTransferLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for SafeTransferLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for SafeTransferLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(SafeTransferLib)) - .field(&self.address()) - .finish() - } - } - impl SafeTransferLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - SAFETRANSFERLIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - SAFETRANSFERLIB_ABI.clone(), - SAFETRANSFERLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for SafeTransferLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/scaling_lib.rs b/crates/bindings/src/scaling_lib.rs deleted file mode 100644 index ec333e22d..000000000 --- a/crates/bindings/src/scaling_lib.rs +++ /dev/null @@ -1,72 +0,0 @@ -pub use scaling_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod scaling_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static SCALINGLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct ScalingLib(::ethers::contract::Contract); - impl ::core::clone::Clone for ScalingLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for ScalingLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for ScalingLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for ScalingLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(ScalingLib)).field(&self.address()).finish() - } - } - impl ScalingLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - SCALINGLIB_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for ScalingLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/set_up.rs b/crates/bindings/src/set_up.rs deleted file mode 100644 index 7a5da0123..000000000 --- a/crates/bindings/src/set_up.rs +++ /dev/null @@ -1,2557 +0,0 @@ -pub use set_up::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod set_up { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("IS_TEST"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("IS_TEST"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("TEST_SWAP_FEE"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("TEST_SWAP_FEE"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeArtifacts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeArtifacts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "excludedArtifacts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeContracts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeContracts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "excludedContracts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("excludeSenders"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("excludeSenders"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("excludedSenders_"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("failed"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("failed"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getPoolLiquidityToken"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "getPoolLiquidityToken", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("setUp"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("setUp"), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetArtifactSelectors"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "targetArtifactSelectors", - ), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedArtifactSelectors_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzSelector[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetArtifacts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetArtifacts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedArtifacts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetContracts"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetContracts"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedContracts_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetInterfaces"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetInterfaces"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedInterfaces_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::String, - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzInterface[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetSelectors"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetSelectors"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "targetedSelectors_", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), - ), - ), - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct StdInvariant.FuzzSelector[]", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("targetSenders"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("targetSenders"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetedSenders_"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("log"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_address"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_address"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_array"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_bytes"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_bytes"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_bytes32"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_bytes32"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_int"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_address"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_address"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_array"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Int(256usize), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_array"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Address, - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_bytes"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_bytes"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_bytes32"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_bytes32"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_decimal_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "log_named_decimal_int", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_decimal_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "log_named_decimal_uint", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_int"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_int"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Int(256usize), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_string"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_string"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_named_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_named_uint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("val"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_string"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_string"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("log_uint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("log_uint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("logs"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("logs"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static SETUP_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\x000W`\x01`\xFF\x19\x81\x81`\x07T\x16\x17`\x07U`\x0BT\x16\x17`\x0BU`@Qaa\xAB\x90\x81a\0~\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10\x15b\0\0rW[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x805`\xE0\x1C\x80c\n\x92T\xE4\x14b\0\x0EgW\x80c\x1E\xD7\x83\x1C\x14b\0\r\xE1W\x80c*\xDE8\x80\x14b\0\x0B5W\x80c>^<#\x14b\0\n\xAFW\x80c?r\x86\xF4\x14b\0\n)W\x80cb\n&\x07\x14b\0\n\x06W\x80cf\xD9\xA9\xA0\x14b\0\x08pW\x80c\x85\"l\x81\x14b\0\x071W\x80c\x91j\x17\xC6\x14b\0\x04\xB5W\x80c\xB5P\x8A\xA9\x14b\0\x03bW\x80c\xBAAO\xA6\x14b\0\x03:W\x80c\xE2\x0C\x9Fq\x14b\0\x02\xA3W\x80c\xE2\x14\x85\xAD\x14b\0\x01VWc\xFAv&\xD4\x14b\0\x01'WPb\0\0\x0FV[4b\0\x01PW6`\x03\x19\x01\x12b\0\x01JW` `\xFF`\x07T\x16`@Q\x90\x15\x15\x81R\xF3[b\0\x12{V[b\0\x12+V[P4b\0\x01PW` 6`\x03\x19\x01\x12b\0\x01JW`\x1CT`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x80;\x15b\0\x02\x9DW`\xE0`$\x91`@Q\x92\x83\x80\x92c\x06\x8B\xCD\x8D\x85\x1B\x82R`\x045`\x04\x83\x01RZ\xFA\x92\x83\x15b\0\x02\x91W\x92b\0\x01\xBFW[P`\xC0` \x92\x01Q\x16`@Q\x90\x81R\xF3[\x91P`\xE0\x82=`\xE0\x11b\0\x02\x88W[\x81b\0\x01\xDD`\xE0\x93\x83b\0\x14\xF8V[\x81\x01\x03\x12b\0\x01JW`@Q`\xE0\x81\x01\x90\x80\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17b\0\x02rWb\0\x02f`\xC0` \x95\x81\x94`@Rb\0\x02\x1B\x81b\0\x16\x95V[\x84Rb\0\x02*\x87\x82\x01b\0\x16\x95V[\x87\x85\x01Rb\0\x02<`@\x82\x01b\0\x16\x95V[`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01b\0\x16\x95V[\x82\x82\x01R\x92Pb\0\x01\xAEV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[=\x91Pb\0\x01\xCEV[`@Q\x90=\x90\x82>=\x90\xFD[b\0\x14sV[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`@Q`\x13\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90\x92\x91[\x82\x82\x10b\0\x03\x19Wb\0\x03\x15\x85b\0\x03\x08\x81\x89\x03\x82b\0\x14\xF8V[`@Q\x91\x82\x91\x82b\0\x12\xCBV[\x03\x90\xF3[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x02\xEDV[P4b\0\x01PW6`\x03\x19\x01\x12b\0\x01JW` b\0\x03Xb\0\x15SV[`@Q\x90\x15\x15\x81R\xF3[P4b\0\x01PW6`\x03\x19\x01\x12b\0\x01JW`\x17Tb\0\x03\x82\x81b\0\x15:V[b\0\x03\x91`@Q\x91\x82b\0\x14\xF8V[\x81\x81R` \x91\x82\x82\x01`\x17`\0R\x7F\xC6$\xB6l\xC0\x13\x8B\x8F\xAB\xC2\t$\x7Fr\xD7X\xE1\xCF3CumT;\xAD\xBF$!+\xED\x8C\x15\x90`\0\x90[\x83\x82\x10b\0\x03\xDDW`@Q\x80b\0\x03\x15\x87\x82b\0\x13\xF5V[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x04\xAAW[\x8B\x83\x10\x81\x14b\0\x04\x96W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x04xWP`\x01\x14b\0\x04;W[Pb\0\x04,\x81`\x01\x96\x03\x82b\0\x14\xF8V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x03\xC5V[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x04`WP\x81\x01\x83\x01\x94Pb\0\x04,b\0\x04\x1BV[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x04GV[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x04,b\0\x04\x1BV[cNH{q`\xE0\x1B\x87R`\"`\x04R`$\x87\xFD[\x91`\x7F\x16\x91b\0\x03\xF8V[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`\x1ATb\0\x04\xD6\x81b\0\x15:V[\x90b\0\x04\xE6`@Q\x92\x83b\0\x14\xF8V[\x80\x82R`\x1A\x83R\x82\x7F\x05|8J}\x1CT\xF3\xA1\xB2\xE5\xE6{&\x17\xB8\"O\xDF\xD1\xEAr4\xEE\xA5s\xA6\xFFf_\xF6>` \x84\x01[\x83\x83\x10b\0\x05,W`@Q\x80b\0\x03\x15\x87\x82b\0\x137V[`@Qb\0\x05:\x81b\0\x14\xDBV[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\x06\xC1W\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\x05\xD0\x94T\x91\x81\x81\x10b\0\x06\xA4W[\x81\x81\x10b\0\x06\x87W[\x81\x81\x10b\0\x06jW[\x81\x81\x10b\0\x06MW[\x81\x81\x10b\0\x060W[\x81\x81\x10b\0\x06\x13W[\x81\x81\x10b\0\x05\xF8W[\x10b\0\x05\xE3W[P\x03\x82b\0\x14\xF8V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x05\x14V[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x86\x018b\0\x05\xC7V[\x82\x8A\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xC0V[`@\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xB7V[``\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xAEV[`\x80\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xA5V[`\xA0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\x9CV[`\xC0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\x93V[`\xE0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\x8AV[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\x05bV[P4b\0\x01PW6`\x03\x19\x01\x12b\0\x01JW`\x18Tb\0\x07Q\x81b\0\x15:V[b\0\x07``@Q\x91\x82b\0\x14\xF8V[\x81\x81R` \x91\x82\x82\x01`\x18`\0R\x7F\xB1=-v\xD1\xF4\xB7\xBE\x83H\x82\xE4\x10\xB3\xE3\xA8\xAF\xAFi\xF86\0\xAE$\xDB5C\x91\xD27\x8D.\x90`\0\x90[\x83\x82\x10b\0\x07\xACW`@Q\x80b\0\x03\x15\x87\x82b\0\x13\xF5V[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x08eW[\x8B\x83\x10\x81\x14b\0\x04\x96W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x08GWP`\x01\x14b\0\x08\nW[Pb\0\x07\xFB\x81`\x01\x96\x03\x82b\0\x14\xF8V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x07\x94V[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x08/WP\x81\x01\x83\x01\x94Pb\0\x07\xFBb\0\x07\xEAV[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x08\x16V[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x07\xFBb\0\x07\xEAV[\x91`\x7F\x16\x91b\0\x07\xC7V[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`\x19Tb\0\x08\x91\x81b\0\x15:V[\x90b\0\x08\xA1`@Q\x92\x83b\0\x14\xF8V[\x80\x82R`\x19\x83R\x82\x7F\x94I\x98'>G{IQD\xFB\x87\x94\xC9\x14\x19\x7F<\xCBF\xBE)\0\xF4i\x8F\xD0\xEFt<\x96\x95` \x84\x01[\x83\x83\x10b\0\x08\xE7W`@Q\x80b\0\x03\x15\x87\x82b\0\x137V[`@Qb\0\x08\xF5\x81b\0\x14\xDBV[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\t\x96W\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\t\x83\x94T\x91\x81\x81\x10b\0\x06\xA4W\x81\x81\x10b\0\x06\x87W\x81\x81\x10b\0\x06jW\x81\x81\x10b\0\x06MW\x81\x81\x10b\0\x060W\x81\x81\x10b\0\x06\x13W\x81\x81\x10b\0\x05\xF8W\x10b\0\x05\xE3WP\x03\x82b\0\x14\xF8V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x08\xCFV[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\t\x1DV[P4b\0\x01PW6`\x03\x19\x01\x12b\0\x01JW` `@Qf\n\xA8{\xEES\x80\0\x81R\xF3[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`@Q`\x15\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7FU\xF4H\xFD\xEA\x98\xC4\xD2\x9E\xB3@u~\xF0\xA6l\xD0=\xBB\x958\x90\x8Aj\x81\xD9`&\xB7\x1E\xC4u\x92\x91[\x82\x82\x10b\0\n\x8EWb\0\x03\x15\x85b\0\x03\x08\x81\x89\x03\x82b\0\x14\xF8V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\nsV[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`@Q`\x16\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xD83\x14}}\xC3U\xBAE\x9F\xC7\x88\xF6i\xE5\x8C\xFA\xF9\xDC%\xDD\xCD\x07\x02\xE8}i\xC7\xB5\x12B\x89\x92\x91[\x82\x82\x10b\0\x0B\x14Wb\0\x03\x15\x85b\0\x03\x08\x81\x89\x03\x82b\0\x14\xF8V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\n\xF9V[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`\x1BT\x90b\0\x0BW\x82b\0\x15:V[b\0\x0Bf`@Q\x91\x82b\0\x14\xF8V[\x82\x81R` \x81\x01\x80\x93`\x1B\x84R\x7F:\xD8\xAAO\x87TC#\xA9\xD1\xE5\xDD\x90/@\xC3VRzyUhq\x13\xDB_\x9A\x85\xADW\x9D\xC1\x84\x92[\x82\x84\x10b\0\x0C\x87W\x85\x85\x88`@Q\x91` \x83\x01\x90` \x84RQ\x80\x91R`@\x83\x01`\x05\x90`@\x83`\x05\x1B\x86\x01\x01\x93\x95\x80\x92[\x84\x84\x10b\0\x0B\xD6W\x86\x86\x03\x87\xF3[\x90\x91\x92\x93\x94`?\x19\x87\x82\x03\x01\x84R\x87Q\x90` `@\x82\x01\x92`\x01\x80`\xA0\x1B\x03\x81Q\x16\x83R\x01Q\x91`@` \x83\x01R\x82Q\x80\x91R``\x90` \x82\x84\x01\x92\x82\x87\x1B\x85\x01\x01\x94\x01\x92\x86[\x82\x81\x10b\0\x0CBWPPPPP` \x80`\x01\x92\x99\x01\x94\x01\x94\x01\x92\x96\x94\x93\x91\x90b\0\x0B\xC8V[\x90\x91\x92\x93\x94` \x80\x80`\x01\x93`_\x19\x87\x82\x03\x01\x89R\x89Qb\0\x0Cp\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x13\x12V[`\x1F\x01`\x1F\x19\x16\x01\x01\x97\x01\x95\x01\x93\x92\x91\x01b\0\x0C\x1DV[`@Qb\0\x0C\x95\x81b\0\x14\xDBV[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`\x01\x83\x01\x80T\x90b\0\x0C\xB4\x82b\0\x15:V[\x91b\0\x0C\xC4`@Q\x93\x84b\0\x14\xF8V[\x80\x83R` \x83\x01\x91`\0R` `\0 `\0\x92[\x82\x84\x10b\0\r\0WPPPP`\x01\x92\x82` \x92\x83`\x02\x95\x01R\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x0B\x97V[`@Q`\0\x83T\x80`\x01\x1C\x90`\x01\x81\x16\x15b\0\r\xD6W[` \x82\x10`\x01\x82\x16\x14b\0\r\xC2W\x81\x84R`\x01\x81\x16\x90\x81\x15b\0\r\x9EWP`\x01\x14b\0\rcW[P`\x01\x92\x82b\0\rT\x85\x94` \x94\x03\x82b\0\x14\xF8V[\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x0C\xD8V[`\0\x85\x81R` \x81 \x90\x92P[\x81\x83\x10b\0\r\x87WPP\x81\x01` \x01`\x01b\0\r>V[`\x01\x81` \x92T\x83\x86\x88\x01\x01R\x01\x92\x01\x91b\0\rpV[`\xFF\x19\x16` \x85\x81\x01\x91\x90\x91R\x91\x15\x15`\x05\x1B\x84\x01\x90\x91\x01\x91P`\x01\x90Pb\0\r>V[cNH{q`\xE0\x1B\x83R`\"`\x04R`$\x83\xFD[\x90`\x7F\x16\x90b\0\r\x17V[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`@Q`\x14\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xCEm{R\x82\xBD\x9A6a\xAE\x06\x1F\xEE\xD1\xDB\xDANR\xAB\x07;\x1F\x92\x85\xBEn\x15]\x9C8\xD4\xEC\x92\x91[\x82\x82\x10b\0\x0EFWb\0\x03\x15\x85b\0\x03\x08\x81\x89\x03\x82b\0\x14\xF8V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x0E+V[P4b\0\x12+W\x80`\x03\x196\x01\x12b\0\x01JW`@Qa\x13\x01\x80\x82\x01\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x81\x84\x10\x83\x85\x11\x17b\0\x12\x17Wb\0\x16\xAB\x91\x81\x83\x829``\x85R`\x06``\x86\x01Re\x0E\x8D\xEDl\xAD\xCB`\xD3\x1B`\x80\x86\x01R`\xE0\x81` \x96`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`\x0B`\xFB\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x90\x81\x15b\0\x11\x83W`\x01\x80`\xA0\x1B\x03\x92\x83k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x93\x16\x83`\x1ET\x16\x17`\x1EU`@Q\x91\x80\x83\x01\x91\x83\x83\x10\x87\x84\x11\x17b\0\x12\x03W\x91\x83\x91`\xE0\x93\x839``\x81R`\x06``\x82\x01RetokenY`\xD0\x1B`\x80\x82\x01R`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`Y`\xF8\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x80\x15b\0\x11\x83W\x82\x16\x81`\x1FT\x16\x17`\x1FU\x81`\x1ET\x16\x92\x83;\x15b\0\x02\x9DW`@Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0\x91\x88\x81`D\x81\x83`$\x9B\x88\x8D\x84\x01RZ\xF1\x80\x15b\0\x11\xF8Wb\0\x11\xE2W[P\x84`\x1FT\x16\x90\x81;\x15b\0\x02\x9DW\x88\x92`D\x84\x92\x83`@Q\x95\x86\x94\x85\x93\x84R0`\x04\x85\x01R\x8C\x84\x01RZ\xF1\x80\x15b\0\x11\xD7Wb\0\x11\xBFW[PP\x82`\x1ET\x16\x83`\x1FT\x16\x90`@Q\x91a\x07\xA1\x91\x82\x84\x01\x92\x84\x84\x10\x86\x85\x11\x17b\0\x11\xACW\x91``\x93\x91\x85\x93b\0Y\xD5\x859\x82R\x89\x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R\x03\x01\x90\x87\xF0\x80\x15b\0\x11\xA1W\x83\x16\x82`\x1DT\x16\x17`\x1DU`@Q\x90a0)\x80\x83\x01\x91\x83\x83\x10\x90\x83\x11\x17b\0\x11\x8EW\x90\x82\x91b\0)\xAC\x839\x03\x90\x86\xF0\x80\x15b\0\x11\x83W\x82\x16\x91\x82`\x1CT\x92\x83\x16\x17`\x1CU\x80`\x1ET\x16\x92\x83;\x15b\0\x02\x9DW`@Q\x90\x87c\t^\xA7\xB3`\xE0\x1B\x94\x85\x84R\x16\x17`\x04\x82\x01R\x85\x81`D\x81\x8A`\0\x19\x98\x89\x8B\x84\x01RZ\xF1\x80\x15b\0\x11xWb\0\x11VW[P\x80`\x1FT\x16\x90`\x1CT\x16\x91\x81;\x15b\0\x02\x9DW\x86`D\x92\x87\x95`@Q\x97\x88\x96\x87\x95\x86R`\x04\x86\x01R\x84\x01RZ\xF1\x80\x15b\0\x11KWb\0\x11\x18W\x82\x80\xF3[\x81b\0\x11<\x92\x90=\x10b\0\x11CW[b\0\x113\x81\x83b\0\x14\xF8V[\x81\x01\x90b\0\x15\x1BV[P8\x80\x82\x80\xF3[P=b\0\x11'V[`@Q=\x85\x82>=\x90\xFD[b\0\x11p\x90\x86=\x88\x11b\0\x11CWb\0\x113\x81\x83b\0\x14\xF8V[P8b\0\x10\xDAV[`@Q=\x89\x82>=\x90\xFD[`@Q=\x87\x82>=\x90\xFD[cNH{q`\xE0\x1B\x88R`A`\x04R\x85\x88\xFD[`@Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8BR`A`\x04R\x88\x8B\xFD[b\0\x11\xCA\x90b\0\x14\xC6V[b\0\x01JW\x858b\0\x10\0V[`@Q=\x84\x82>=\x90\xFD[b\0\x11\xF0\x90\x98\x91\x98b\0\x14\xC6V[\x968b\0\x0F\xC7V[`@Q=\x8B\x82>=\x90\xFD[cNH{q`\xE0\x1B\x89R`A`\x04R`$\x89\xFD[cNH{q`\xE0\x1B\x85R`A`\x04R`$\x85\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[` \x90` `@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10b\0\x12\xF4WPPPP\x90V[\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01b\0\x12\xE5V[`\0[\x83\x81\x10b\0\x13&WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x13\x15V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01\x82`@\x85`\x05\x1B\x84\x01\x01\x96\x01\x94`\0\x80\x93[\x86\x85\x10b\0\x13qWPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x80\x96\x97\x98`?\x19\x83\x82\x03\x01\x86R\x89Q\x82``\x81\x88\x85\x01\x93`\x01\x80`\xA0\x1B\x03\x81Q\x16\x86R\x01Q\x93\x88\x83\x82\x01R\x84Q\x80\x94R\x01\x92\x01\x90\x85\x90[\x80\x82\x10b\0\x13\xD0WPPP\x90\x80`\x01\x92\x9A\x01\x95\x01\x95\x01\x93\x96\x95\x94\x92\x91\x90b\0\x13^V[\x82Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x8A\x94\x93\x84\x01\x93\x90\x92\x01\x91`\x01\x91\x90\x91\x01\x90b\0\x13\xADV[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x83\x01\x92\x81`@\x84`\x05\x1B\x83\x01\x01\x95\x01\x93`\0\x91[\x84\x83\x10b\0\x14*WPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x84\x80\x80`\x01\x93`?\x19\x86\x82\x03\x01\x87R\x8AQb\0\x14X\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x13\x12V[`\x1F\x01`\x1F\x19\x16\x01\x01\x98\x01\x96\x95\x94\x91\x90\x91\x01\x92\x01\x90b\0\x14\x19V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02rW`@RV[`@\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02rW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02rW`@RV[\x90\x81` \x91\x03\x12b\0\x01JWQ\x80\x15\x15\x81\x03b\0\x155W\x90V[`\0\x80\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02rW`\x05\x1B` \x01\x90V[`\x07T`\x08\x1C`\xFF\x16\x15b\0\x15nW`\xFF`\x07T`\x08\x1C\x16\x90V[`\0sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0\x15\x90WP\x90V[`@Q\x90` \x82\x01\x81\x81Re\x19\x98Z[\x19Y`\xD2\x1B`@\x84\x01R`@\x83R``\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x80\x82\x10\x85\x83\x11\x17b\0\x16\x81W\x91\x85\x82b\0\x16\r`$\x83\x97\x95\x96\x84\x97`@R`\x80\x81\x01\x95c\x06g\xF9\xD7`\xE4\x1B\x87Rb\0\x15\xFC\x82Q\x80\x92`\x84\x85\x01\x90b\0\x13\x12V[\x81\x01\x03`\x04\x81\x01\x84R\x01\x82b\0\x14\xF8V[Q\x92Z\xF1P=\x15b\0\x16sW=\x90\x81\x11b\0\x16_W`@Qb\0\x16\\\x92\x91b\0\x16A`\x1F\x82\x01`\x1F\x19\x16` \x01\x83b\0\x14\xF8V[\x81R\x80\x91` =\x92\x01>[` \x80\x82Q\x83\x01\x01\x91\x01b\0\x15\x1BV[\x90V[cNH{q`\xE0\x1B\x82R`A`\x04R`$\x82\xFD[PPb\0\x16\\``b\0\x16LV[cNH{q`\xE0\x1B\x86R`A`\x04R`$\x86\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0\x155WV\xFE`\xE0`@\x90\x80\x82R4b\0\x04\x99WPb\0\x13\x01\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xE6V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04JW\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04DW\x82b\0\0V\x91\x85\x01b\0\x05ZV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04DW\x83\x91b\0\0u\x91\x84\x01b\0\x05ZV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04?W\x84Q\x94\x86\x86\x11b\0\x04)W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06~V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xD8W[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03pW\x89\x92b\0\x03dW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03PW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06~V[\x82\x81\x11b\0\x02\xFBW[P\x87\x91\x83\x11`\x01\x14b\0\x02\x97W\x88\x92b\0\x02\x8BW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06~V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02kWPP`\x01\x14b\0\x02+W[Pb\0\x01m\x92P\x03\x82b\0\x04\xE6V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02\x17WP\x83\x90RQ\x90 `\xC0Ra\x0CE\x90\x81b\0\x06\xBC\x829`\x80Q\x81a\x06\x84\x01R`\xA0Q\x81a\nM\x01R`\xC0Q\x81a\nt\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02RWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x028V[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xE4WPP\x84\x11b\0\x02\xCAW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xBCV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xA9V[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03FW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x037WPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x03'V[\x92P\x81\x92b\0\x03\x18V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xC1WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xA7W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x99V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x7FV[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x04\x1FW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\x10WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x01V[\x92P\x81\x92b\0\x03\xF4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\nV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04)W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x06%W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04)W` \x90`@Q\x92b\0\x05\x95\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xE6V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xD0W`\0[\x81\x81\x10b\0\x05\xBCWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xA6V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xB0W[` \x83\x10\x14b\0\x06\x9AWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\x8EV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003`\xA0`@\x90\x80\x82R4b\0\x01[WP`\x01\x80U\x80Qa\x11D\x80\x82\x01\x91`\x01`\x01`@\x1B\x03\x91\x82\x84\x11\x82\x85\x10\x17b\0\x01EWb\0\x1E\xE5\x829\x80`\0\x93\x03\x90\x83\xF0\x80\x15b\0\x01;W`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81\x90R\x80;\x15b\0\0\xE9W\x90\x82\x80\x92`\x84\x86Q\x80\x96\x81\x93c&lE\xBB`\xE1\x1B\x83R\x89`\x04\x84\x01R\x81`D\x84\x01R```$\x84\x01R\x81`d\x84\x01RZ\xF1\x80\x15b\0\0\xDFWb\0\0\xB8W[\x83Qa\x1D<\x90\x81b\0\x01\xA9\x829`\x80Q\x81\x81\x81a\x0Bj\x01Ra\x10\x08\x01R\xF3[\x82\x11b\0\0\xCBWP\x81R8\x80\x80b\0\0\x99V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x84Q=\x84\x82>=\x90\xFD[\x83QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x83Q=\x84\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003`\x80`@\x90\x80\x82R4a\x01\x06WP\x80Q`\x1Fa\x07\xA18\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xF0W\x80\x84\x92``\x94\x87R\x839\x81\x01\x03\x12a\0\xA1Wa\0O\x81a\x01SV[\x90\x82a\0]` \x83\x01a\x01SV[\x91\x01Q\x91`\x01\x80`\xA0\x1B\x03\x19\x913\x83`\0T\x16\x17`\0U`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x83`\x01T\x16\x17`\x01U\x16\x90`\x02T\x16\x17`\x02U`\x03UQa\x064\x90\x81a\x01m\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x01gWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003\xA2dipfsX\"\x12 s\\\x1Co\xDA\xE0\xD2e!@\xF3p\xCF?\rB~\x0CQF\x04\x06\xE9T\xC59\xAD\xB12\xA9\x07\x9EdsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static SETUP_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10\x15b\0\0rW[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`\0\x805`\xE0\x1C\x80c\n\x92T\xE4\x14b\0\x0EgW\x80c\x1E\xD7\x83\x1C\x14b\0\r\xE1W\x80c*\xDE8\x80\x14b\0\x0B5W\x80c>^<#\x14b\0\n\xAFW\x80c?r\x86\xF4\x14b\0\n)W\x80cb\n&\x07\x14b\0\n\x06W\x80cf\xD9\xA9\xA0\x14b\0\x08pW\x80c\x85\"l\x81\x14b\0\x071W\x80c\x91j\x17\xC6\x14b\0\x04\xB5W\x80c\xB5P\x8A\xA9\x14b\0\x03bW\x80c\xBAAO\xA6\x14b\0\x03:W\x80c\xE2\x0C\x9Fq\x14b\0\x02\xA3W\x80c\xE2\x14\x85\xAD\x14b\0\x01VWc\xFAv&\xD4\x14b\0\x01'WPb\0\0\x0FV[4b\0\x01PW6`\x03\x19\x01\x12b\0\x01JW` `\xFF`\x07T\x16`@Q\x90\x15\x15\x81R\xF3[b\0\x12{V[b\0\x12+V[P4b\0\x01PW` 6`\x03\x19\x01\x12b\0\x01JW`\x1CT`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x80;\x15b\0\x02\x9DW`\xE0`$\x91`@Q\x92\x83\x80\x92c\x06\x8B\xCD\x8D\x85\x1B\x82R`\x045`\x04\x83\x01RZ\xFA\x92\x83\x15b\0\x02\x91W\x92b\0\x01\xBFW[P`\xC0` \x92\x01Q\x16`@Q\x90\x81R\xF3[\x91P`\xE0\x82=`\xE0\x11b\0\x02\x88W[\x81b\0\x01\xDD`\xE0\x93\x83b\0\x14\xF8V[\x81\x01\x03\x12b\0\x01JW`@Q`\xE0\x81\x01\x90\x80\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17b\0\x02rWb\0\x02f`\xC0` \x95\x81\x94`@Rb\0\x02\x1B\x81b\0\x16\x95V[\x84Rb\0\x02*\x87\x82\x01b\0\x16\x95V[\x87\x85\x01Rb\0\x02<`@\x82\x01b\0\x16\x95V[`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01b\0\x16\x95V[\x82\x82\x01R\x92Pb\0\x01\xAEV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[=\x91Pb\0\x01\xCEV[`@Q\x90=\x90\x82>=\x90\xFD[b\0\x14sV[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`@Q`\x13\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90\x92\x91[\x82\x82\x10b\0\x03\x19Wb\0\x03\x15\x85b\0\x03\x08\x81\x89\x03\x82b\0\x14\xF8V[`@Q\x91\x82\x91\x82b\0\x12\xCBV[\x03\x90\xF3[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x02\xEDV[P4b\0\x01PW6`\x03\x19\x01\x12b\0\x01JW` b\0\x03Xb\0\x15SV[`@Q\x90\x15\x15\x81R\xF3[P4b\0\x01PW6`\x03\x19\x01\x12b\0\x01JW`\x17Tb\0\x03\x82\x81b\0\x15:V[b\0\x03\x91`@Q\x91\x82b\0\x14\xF8V[\x81\x81R` \x91\x82\x82\x01`\x17`\0R\x7F\xC6$\xB6l\xC0\x13\x8B\x8F\xAB\xC2\t$\x7Fr\xD7X\xE1\xCF3CumT;\xAD\xBF$!+\xED\x8C\x15\x90`\0\x90[\x83\x82\x10b\0\x03\xDDW`@Q\x80b\0\x03\x15\x87\x82b\0\x13\xF5V[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x04\xAAW[\x8B\x83\x10\x81\x14b\0\x04\x96W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x04xWP`\x01\x14b\0\x04;W[Pb\0\x04,\x81`\x01\x96\x03\x82b\0\x14\xF8V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x03\xC5V[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x04`WP\x81\x01\x83\x01\x94Pb\0\x04,b\0\x04\x1BV[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x04GV[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x04,b\0\x04\x1BV[cNH{q`\xE0\x1B\x87R`\"`\x04R`$\x87\xFD[\x91`\x7F\x16\x91b\0\x03\xF8V[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`\x1ATb\0\x04\xD6\x81b\0\x15:V[\x90b\0\x04\xE6`@Q\x92\x83b\0\x14\xF8V[\x80\x82R`\x1A\x83R\x82\x7F\x05|8J}\x1CT\xF3\xA1\xB2\xE5\xE6{&\x17\xB8\"O\xDF\xD1\xEAr4\xEE\xA5s\xA6\xFFf_\xF6>` \x84\x01[\x83\x83\x10b\0\x05,W`@Q\x80b\0\x03\x15\x87\x82b\0\x137V[`@Qb\0\x05:\x81b\0\x14\xDBV[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\x06\xC1W\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\x05\xD0\x94T\x91\x81\x81\x10b\0\x06\xA4W[\x81\x81\x10b\0\x06\x87W[\x81\x81\x10b\0\x06jW[\x81\x81\x10b\0\x06MW[\x81\x81\x10b\0\x060W[\x81\x81\x10b\0\x06\x13W[\x81\x81\x10b\0\x05\xF8W[\x10b\0\x05\xE3W[P\x03\x82b\0\x14\xF8V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x05\x14V[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x86\x018b\0\x05\xC7V[\x82\x8A\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xC0V[`@\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xB7V[``\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xAEV[`\x80\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\xA5V[`\xA0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\x9CV[`\xC0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\x93V[`\xE0\x83\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x89\x01\x92\x8B\x01b\0\x05\x8AV[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\x05bV[P4b\0\x01PW6`\x03\x19\x01\x12b\0\x01JW`\x18Tb\0\x07Q\x81b\0\x15:V[b\0\x07``@Q\x91\x82b\0\x14\xF8V[\x81\x81R` \x91\x82\x82\x01`\x18`\0R\x7F\xB1=-v\xD1\xF4\xB7\xBE\x83H\x82\xE4\x10\xB3\xE3\xA8\xAF\xAFi\xF86\0\xAE$\xDB5C\x91\xD27\x8D.\x90`\0\x90[\x83\x82\x10b\0\x07\xACW`@Q\x80b\0\x03\x15\x87\x82b\0\x13\xF5V[`@Q`\0\x91\x84T\x91`\x01\x92\x80\x84\x1C\x90\x84\x81\x16\x80\x15b\0\x08eW[\x8B\x83\x10\x81\x14b\0\x04\x96W\x82\x84R\x8B\x94\x93\x92\x91\x81\x15b\0\x08GWP`\x01\x14b\0\x08\nW[Pb\0\x07\xFB\x81`\x01\x96\x03\x82b\0\x14\xF8V[\x81R\x01\x93\x01\x91\x01\x90\x91b\0\x07\x94V[`\0\x88\x81R\x84\x81 \x96P\x90[\x80\x82\x10b\0\x08/WP\x81\x01\x83\x01\x94Pb\0\x07\xFBb\0\x07\xEAV[\x86T\x83\x83\x01\x86\x01R\x95\x85\x01\x95\x8B\x94\x90\x91\x01\x90b\0\x08\x16V[`\xFF\x19\x16\x85\x84\x01RP\x15\x15`\x05\x1B\x81\x01\x83\x01\x94Pb\0\x07\xFBb\0\x07\xEAV[\x91`\x7F\x16\x91b\0\x07\xC7V[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`\x19Tb\0\x08\x91\x81b\0\x15:V[\x90b\0\x08\xA1`@Q\x92\x83b\0\x14\xF8V[\x80\x82R`\x19\x83R\x82\x7F\x94I\x98'>G{IQD\xFB\x87\x94\xC9\x14\x19\x7F<\xCBF\xBE)\0\xF4i\x8F\xD0\xEFt<\x96\x95` \x84\x01[\x83\x83\x10b\0\x08\xE7W`@Q\x80b\0\x03\x15\x87\x82b\0\x137V[`@Qb\0\x08\xF5\x81b\0\x14\xDBV[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`@Q`\x01\x84\x01\x80T\x80\x83R\x90\x89R` \x80\x8A \x90\x83\x01\x91\x8A\x91[\x81`\x07\x84\x01\x10b\0\t\x96W\x84`\x01\x97\x94`\x02\x97\x94` \x97\x94b\0\t\x83\x94T\x91\x81\x81\x10b\0\x06\xA4W\x81\x81\x10b\0\x06\x87W\x81\x81\x10b\0\x06jW\x81\x81\x10b\0\x06MW\x81\x81\x10b\0\x060W\x81\x81\x10b\0\x06\x13W\x81\x81\x10b\0\x05\xF8W\x10b\0\x05\xE3WP\x03\x82b\0\x14\xF8V[\x83\x82\x01R\x81R\x01\x92\x01\x92\x01\x91\x90b\0\x08\xCFV[\x92`\x01a\x01\0`\x08\x92\x86Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81`\xE0\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16` \x85\x01R`\xA0\x83\x83\x82\x1B\x16`@\x86\x01R``\x84\x84`\x80\x92\x82\x82\x85\x1B\x16\x81\x8A\x01R\x1B\x16\x90\x86\x01R\x83\x83`@\x1B\x16\x90\x85\x01R\x82\x82` \x1B\x16\x90\x84\x01R\x16`\xE0\x82\x01R\x01\x94\x01\x92\x01\x91b\0\t\x1DV[P4b\0\x01PW6`\x03\x19\x01\x12b\0\x01JW` `@Qf\n\xA8{\xEES\x80\0\x81R\xF3[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`@Q`\x15\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7FU\xF4H\xFD\xEA\x98\xC4\xD2\x9E\xB3@u~\xF0\xA6l\xD0=\xBB\x958\x90\x8Aj\x81\xD9`&\xB7\x1E\xC4u\x92\x91[\x82\x82\x10b\0\n\x8EWb\0\x03\x15\x85b\0\x03\x08\x81\x89\x03\x82b\0\x14\xF8V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\nsV[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`@Q`\x16\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xD83\x14}}\xC3U\xBAE\x9F\xC7\x88\xF6i\xE5\x8C\xFA\xF9\xDC%\xDD\xCD\x07\x02\xE8}i\xC7\xB5\x12B\x89\x92\x91[\x82\x82\x10b\0\x0B\x14Wb\0\x03\x15\x85b\0\x03\x08\x81\x89\x03\x82b\0\x14\xF8V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\n\xF9V[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`\x1BT\x90b\0\x0BW\x82b\0\x15:V[b\0\x0Bf`@Q\x91\x82b\0\x14\xF8V[\x82\x81R` \x81\x01\x80\x93`\x1B\x84R\x7F:\xD8\xAAO\x87TC#\xA9\xD1\xE5\xDD\x90/@\xC3VRzyUhq\x13\xDB_\x9A\x85\xADW\x9D\xC1\x84\x92[\x82\x84\x10b\0\x0C\x87W\x85\x85\x88`@Q\x91` \x83\x01\x90` \x84RQ\x80\x91R`@\x83\x01`\x05\x90`@\x83`\x05\x1B\x86\x01\x01\x93\x95\x80\x92[\x84\x84\x10b\0\x0B\xD6W\x86\x86\x03\x87\xF3[\x90\x91\x92\x93\x94`?\x19\x87\x82\x03\x01\x84R\x87Q\x90` `@\x82\x01\x92`\x01\x80`\xA0\x1B\x03\x81Q\x16\x83R\x01Q\x91`@` \x83\x01R\x82Q\x80\x91R``\x90` \x82\x84\x01\x92\x82\x87\x1B\x85\x01\x01\x94\x01\x92\x86[\x82\x81\x10b\0\x0CBWPPPPP` \x80`\x01\x92\x99\x01\x94\x01\x94\x01\x92\x96\x94\x93\x91\x90b\0\x0B\xC8V[\x90\x91\x92\x93\x94` \x80\x80`\x01\x93`_\x19\x87\x82\x03\x01\x89R\x89Qb\0\x0Cp\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x13\x12V[`\x1F\x01`\x1F\x19\x16\x01\x01\x97\x01\x95\x01\x93\x92\x91\x01b\0\x0C\x1DV[`@Qb\0\x0C\x95\x81b\0\x14\xDBV[\x82T`\x01`\x01`\xA0\x1B\x03\x16\x81R`\x01\x83\x01\x80T\x90b\0\x0C\xB4\x82b\0\x15:V[\x91b\0\x0C\xC4`@Q\x93\x84b\0\x14\xF8V[\x80\x83R` \x83\x01\x91`\0R` `\0 `\0\x92[\x82\x84\x10b\0\r\0WPPPP`\x01\x92\x82` \x92\x83`\x02\x95\x01R\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x0B\x97V[`@Q`\0\x83T\x80`\x01\x1C\x90`\x01\x81\x16\x15b\0\r\xD6W[` \x82\x10`\x01\x82\x16\x14b\0\r\xC2W\x81\x84R`\x01\x81\x16\x90\x81\x15b\0\r\x9EWP`\x01\x14b\0\rcW[P`\x01\x92\x82b\0\rT\x85\x94` \x94\x03\x82b\0\x14\xF8V[\x81R\x01\x92\x01\x93\x01\x92\x90b\0\x0C\xD8V[`\0\x85\x81R` \x81 \x90\x92P[\x81\x83\x10b\0\r\x87WPP\x81\x01` \x01`\x01b\0\r>V[`\x01\x81` \x92T\x83\x86\x88\x01\x01R\x01\x92\x01\x91b\0\rpV[`\xFF\x19\x16` \x85\x81\x01\x91\x90\x91R\x91\x15\x15`\x05\x1B\x84\x01\x90\x91\x01\x91P`\x01\x90Pb\0\r>V[cNH{q`\xE0\x1B\x83R`\"`\x04R`$\x83\xFD[\x90`\x7F\x16\x90b\0\r\x17V[P4b\0\x01PW\x80`\x03\x196\x01\x12b\0\x01JW`@Q`\x14\x80T\x80\x83R\x90\x83R` \x80\x83\x01\x93\x7F\xCEm{R\x82\xBD\x9A6a\xAE\x06\x1F\xEE\xD1\xDB\xDANR\xAB\x07;\x1F\x92\x85\xBEn\x15]\x9C8\xD4\xEC\x92\x91[\x82\x82\x10b\0\x0EFWb\0\x03\x15\x85b\0\x03\x08\x81\x89\x03\x82b\0\x14\xF8V[\x83T`\x01`\x01`\xA0\x1B\x03\x16\x86R\x94\x85\x01\x94`\x01\x93\x84\x01\x93\x90\x91\x01\x90b\0\x0E+V[P4b\0\x12+W\x80`\x03\x196\x01\x12b\0\x01JW`@Qa\x13\x01\x80\x82\x01\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x81\x84\x10\x83\x85\x11\x17b\0\x12\x17Wb\0\x16\xAB\x91\x81\x83\x829``\x85R`\x06``\x86\x01Re\x0E\x8D\xEDl\xAD\xCB`\xD3\x1B`\x80\x86\x01R`\xE0\x81` \x96`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`\x0B`\xFB\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x90\x81\x15b\0\x11\x83W`\x01\x80`\xA0\x1B\x03\x92\x83k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x93\x16\x83`\x1ET\x16\x17`\x1EU`@Q\x91\x80\x83\x01\x91\x83\x83\x10\x87\x84\x11\x17b\0\x12\x03W\x91\x83\x91`\xE0\x93\x839``\x81R`\x06``\x82\x01RetokenY`\xD0\x1B`\x80\x82\x01R`\xA0\x88\x82\x01R`\x01`\xA0\x82\x01R`Y`\xF8\x1B`\xC0\x82\x01R`\x12`@\x82\x01R\x03\x01\x90\x86\xF0\x80\x15b\0\x11\x83W\x82\x16\x81`\x1FT\x16\x17`\x1FU\x81`\x1ET\x16\x92\x83;\x15b\0\x02\x9DW`@Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R0`\x04\x83\x01Rh\x05k\xC7^-c\x10\0\0\x91\x88\x81`D\x81\x83`$\x9B\x88\x8D\x84\x01RZ\xF1\x80\x15b\0\x11\xF8Wb\0\x11\xE2W[P\x84`\x1FT\x16\x90\x81;\x15b\0\x02\x9DW\x88\x92`D\x84\x92\x83`@Q\x95\x86\x94\x85\x93\x84R0`\x04\x85\x01R\x8C\x84\x01RZ\xF1\x80\x15b\0\x11\xD7Wb\0\x11\xBFW[PP\x82`\x1ET\x16\x83`\x1FT\x16\x90`@Q\x91a\x07\xA1\x91\x82\x84\x01\x92\x84\x84\x10\x86\x85\x11\x17b\0\x11\xACW\x91``\x93\x91\x85\x93b\0Y\xD5\x859\x82R\x89\x82\x01Rg\r\xE0\xB6\xB3\xA7d\0\0`@\x82\x01R\x03\x01\x90\x87\xF0\x80\x15b\0\x11\xA1W\x83\x16\x82`\x1DT\x16\x17`\x1DU`@Q\x90a0)\x80\x83\x01\x91\x83\x83\x10\x90\x83\x11\x17b\0\x11\x8EW\x90\x82\x91b\0)\xAC\x839\x03\x90\x86\xF0\x80\x15b\0\x11\x83W\x82\x16\x91\x82`\x1CT\x92\x83\x16\x17`\x1CU\x80`\x1ET\x16\x92\x83;\x15b\0\x02\x9DW`@Q\x90\x87c\t^\xA7\xB3`\xE0\x1B\x94\x85\x84R\x16\x17`\x04\x82\x01R\x85\x81`D\x81\x8A`\0\x19\x98\x89\x8B\x84\x01RZ\xF1\x80\x15b\0\x11xWb\0\x11VW[P\x80`\x1FT\x16\x90`\x1CT\x16\x91\x81;\x15b\0\x02\x9DW\x86`D\x92\x87\x95`@Q\x97\x88\x96\x87\x95\x86R`\x04\x86\x01R\x84\x01RZ\xF1\x80\x15b\0\x11KWb\0\x11\x18W\x82\x80\xF3[\x81b\0\x11<\x92\x90=\x10b\0\x11CW[b\0\x113\x81\x83b\0\x14\xF8V[\x81\x01\x90b\0\x15\x1BV[P8\x80\x82\x80\xF3[P=b\0\x11'V[`@Q=\x85\x82>=\x90\xFD[b\0\x11p\x90\x86=\x88\x11b\0\x11CWb\0\x113\x81\x83b\0\x14\xF8V[P8b\0\x10\xDAV[`@Q=\x89\x82>=\x90\xFD[`@Q=\x87\x82>=\x90\xFD[cNH{q`\xE0\x1B\x88R`A`\x04R\x85\x88\xFD[`@Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8BR`A`\x04R\x88\x8B\xFD[b\0\x11\xCA\x90b\0\x14\xC6V[b\0\x01JW\x858b\0\x10\0V[`@Q=\x84\x82>=\x90\xFD[b\0\x11\xF0\x90\x98\x91\x98b\0\x14\xC6V[\x968b\0\x0F\xC7V[`@Q=\x8B\x82>=\x90\xFD[cNH{q`\xE0\x1B\x89R`A`\x04R`$\x89\xFD[cNH{q`\xE0\x1B\x85R`A`\x04R`$\x85\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[` \x90` `@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10b\0\x12\xF4WPPPP\x90V[\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01b\0\x12\xE5V[`\0[\x83\x81\x10b\0\x13&WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x13\x15V[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x92`@\x81\x01\x82`@\x85`\x05\x1B\x84\x01\x01\x96\x01\x94`\0\x80\x93[\x86\x85\x10b\0\x13qWPPPPPPPP\x90V[\x90\x91\x92\x93\x94\x80\x96\x97\x98`?\x19\x83\x82\x03\x01\x86R\x89Q\x82``\x81\x88\x85\x01\x93`\x01\x80`\xA0\x1B\x03\x81Q\x16\x86R\x01Q\x93\x88\x83\x82\x01R\x84Q\x80\x94R\x01\x92\x01\x90\x85\x90[\x80\x82\x10b\0\x13\xD0WPPP\x90\x80`\x01\x92\x9A\x01\x95\x01\x95\x01\x93\x96\x95\x94\x92\x91\x90b\0\x13^V[\x82Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x8A\x94\x93\x84\x01\x93\x90\x92\x01\x91`\x01\x91\x90\x91\x01\x90b\0\x13\xADV[` \x80\x82\x01\x90\x80\x83R\x83Q\x80\x92R`@\x83\x01\x92\x81`@\x84`\x05\x1B\x83\x01\x01\x95\x01\x93`\0\x91[\x84\x83\x10b\0\x14*WPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x84\x80\x80`\x01\x93`?\x19\x86\x82\x03\x01\x87R\x8AQb\0\x14X\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x13\x12V[`\x1F\x01`\x1F\x19\x16\x01\x01\x98\x01\x96\x95\x94\x91\x90\x91\x01\x92\x01\x90b\0\x14\x19V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02rW`@RV[`@\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02rW`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17b\0\x02rW`@RV[\x90\x81` \x91\x03\x12b\0\x01JWQ\x80\x15\x15\x81\x03b\0\x155W\x90V[`\0\x80\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11b\0\x02rW`\x05\x1B` \x01\x90V[`\x07T`\x08\x1C`\xFF\x16\x15b\0\x15nW`\xFF`\x07T`\x08\x1C\x16\x90V[`\0sq\tp\x9E\xCF\xA9\x1A\x80bo\xF3\x98\x9Dh\xF6\x7F[\x1D\xD1-\x80;b\0\x15\x90WP\x90V[`@Q\x90` \x82\x01\x81\x81Re\x19\x98Z[\x19Y`\xD2\x1B`@\x84\x01R`@\x83R``\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x80\x82\x10\x85\x83\x11\x17b\0\x16\x81W\x91\x85\x82b\0\x16\r`$\x83\x97\x95\x96\x84\x97`@R`\x80\x81\x01\x95c\x06g\xF9\xD7`\xE4\x1B\x87Rb\0\x15\xFC\x82Q\x80\x92`\x84\x85\x01\x90b\0\x13\x12V[\x81\x01\x03`\x04\x81\x01\x84R\x01\x82b\0\x14\xF8V[Q\x92Z\xF1P=\x15b\0\x16sW=\x90\x81\x11b\0\x16_W`@Qb\0\x16\\\x92\x91b\0\x16A`\x1F\x82\x01`\x1F\x19\x16` \x01\x83b\0\x14\xF8V[\x81R\x80\x91` =\x92\x01>[` \x80\x82Q\x83\x01\x01\x91\x01b\0\x15\x1BV[\x90V[cNH{q`\xE0\x1B\x82R`A`\x04R`$\x82\xFD[PPb\0\x16\\``b\0\x16LV[cNH{q`\xE0\x1B\x86R`A`\x04R`$\x86\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0\x155WV\xFE`\xE0`@\x90\x80\x82R4b\0\x04\x99WPb\0\x13\x01\x808\x03\x80\x83Q\x92b\0\0%\x82\x85b\0\x04\xE6V[\x839\x81\x01``\x82\x82\x03\x12b\0\x04JW\x81Q`\x01`\x01`@\x1B\x03\x93\x90\x84\x81\x11b\0\x04DW\x82b\0\0V\x91\x85\x01b\0\x05ZV[\x92` \x92\x83\x82\x01Q\x86\x81\x11b\0\x04DW\x83\x91b\0\0u\x91\x84\x01b\0\x05ZV[\x91\x01Q`\xFF\x81\x16\x81\x03b\0\x04?W\x84Q\x94\x86\x86\x11b\0\x04)W`\0\x95\x80b\0\0\x9E\x88Tb\0\x06~V[\x92`\x1F\x93\x84\x81\x11b\0\x03\xD8W[P\x87\x90\x84\x83\x11`\x01\x14b\0\x03pW\x89\x92b\0\x03dW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x86U[\x82Q\x90\x87\x82\x11b\0\x03PW\x81\x90`\x01\x94b\0\0\xF2\x86Tb\0\x06~V[\x82\x81\x11b\0\x02\xFBW[P\x87\x91\x83\x11`\x01\x14b\0\x02\x97W\x88\x92b\0\x02\x8BW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x83\x1B\x17\x82U[`\x80RF`\xA0R\x81Q\x84T\x91\x81\x86b\0\x01=\x85b\0\x06~V[\x92\x83\x83R\x87\x83\x01\x95\x88\x82\x82\x16\x91\x82`\0\x14b\0\x02kWPP`\x01\x14b\0\x02+W[Pb\0\x01m\x92P\x03\x82b\0\x04\xE6V[Q\x90 \x92\x81Q\x92\x83\x01\x93\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x85R\x82\x84\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x84\x01RF`\x80\x84\x01R0`\xA0\x84\x01R`\xA0\x83R`\xC0\x83\x01\x94\x83\x86\x10\x90\x86\x11\x17b\0\x02\x17WP\x83\x90RQ\x90 `\xC0Ra\x0CE\x90\x81b\0\x06\xBC\x829`\x80Q\x81a\x06\x84\x01R`\xA0Q\x81a\nM\x01R`\xC0Q\x81a\nt\x01R\xF3[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x91P\x88\x80R\x81\x89 \x90\x89\x91[\x85\x83\x10b\0\x02RWPPb\0\x01m\x93P\x82\x01\x018b\0\x01^V[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x89\x93\x90\x92\x01\x91\x81\x01b\0\x028V[`\xFF\x19\x16\x88Rb\0\x01m\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pb\0\x01^\x90PV[\x01Q\x90P8\x80b\0\x01\x10V[\x85\x89R\x87\x89 \x86\x94P\x91\x90`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x02\xE4WPP\x84\x11b\0\x02\xCAW[PPP\x81\x1B\x01\x82Ub\0\x01$V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x02\xBCV[\x83\x85\x01Q\x86U\x89\x97\x90\x95\x01\x94\x93\x84\x01\x93\x01b\0\x02\xA9V[\x90\x91\x92P\x85\x89R\x87\x89 \x83\x80\x86\x01`\x05\x1C\x82\x01\x92\x8A\x87\x10b\0\x03FW[\x91\x86\x95\x89\x92\x95\x94\x93\x01`\x05\x1C\x01\x91[\x82\x81\x10b\0\x037WPPb\0\0\xFBV[\x8B\x81U\x86\x95P\x88\x91\x01b\0\x03'V[\x92P\x81\x92b\0\x03\x18V[cNH{q`\xE0\x1B\x87R`A`\x04R`$\x87\xFD[\x01Q\x90P8\x80b\0\0\xC1V[\x89\x80R\x88\x8A \x92P`\x1F\x19\x84\x16\x8A[\x8A\x82\x82\x10b\0\x03\xC1WPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x03\xA7W[PPP\x81\x1B\x01\x86Ub\0\0\xD6V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x03\x99V[`\x01\x85\x96\x82\x93\x96\x86\x01Q\x81U\x01\x95\x01\x93\x01b\0\x03\x7FV[\x90\x91P\x88\x80R\x87\x89 \x84\x80\x85\x01`\x05\x1C\x82\x01\x92\x8A\x86\x10b\0\x04\x1FW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10b\0\x04\x10WPb\0\0\xABV[\x8A\x81U\x84\x93P`\x01\x01b\0\x04\x01V[\x92P\x81\x92b\0\x03\xF4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80\xFD[b\0\x05\nV[\x82QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x04)W`@RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x80`\x1F\x84\x01\x12\x15b\0\x06%W\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x04)W` \x90`@Q\x92b\0\x05\x95\x83`\x1F\x19`\x1F\x85\x01\x16\x01\x85b\0\x04\xE6V[\x81\x84R\x82\x82\x87\x01\x01\x11b\0\x05\xD0W`\0[\x81\x81\x10b\0\x05\xBCWP\x82`\0\x93\x94\x95P\x01\x01R\x90V[\x85\x81\x01\x83\x01Q\x84\x82\x01\x84\x01R\x82\x01b\0\x05\xA6V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x83\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x06\xB0W[` \x83\x10\x14b\0\x06\x9AWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x06\x8EV\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x07\xF4W\x80c\t^\xA7\xB3\x14a\x07\x85W\x80c\x18\x16\r\xDD\x14a\x07hW\x80c#\xB8r\xDD\x14a\x06\xA8W\x80c1<\xE5g\x14a\x06lW\x80c6D\xE5\x15\x14a\x06JW\x80c@\xC1\x0F\x19\x14a\x05\xCEW\x80cp\xA0\x821\x14a\x05\x96W\x80c~\xCE\xBE\0\x14a\x05^W\x80c\x95\xD8\x9BA\x14a\x04|W\x80c\x9D\xC2\x9F\xAC\x14a\x04\x1BW\x80c\xA9\x05\x9C\xBB\x14a\x03\xA9W\x80c\xD5\x05\xAC\xCF\x14a\x01jWc\xDDb\xED>\x14a\x01\x18WPa\0\x11V[\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92\x82\x91a\x016a\t\xF4V[a\x01>a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x08\xE9V[a\x08\x99V[P\x904a\x01eW`\xE06`\x03\x19\x01\x12a\x01`Wa\x01\x85a\t\xF4V[\x90a\x01\x8Ea\n\x0FV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xA5WB\x85\x10a\x03bWa\x01\xB4a\nHV[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x05\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03NW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03;W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x031W\x86Q\x16\x96\x87\x15\x15\x80a\x03(W[\x15a\x02\xF6W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xB3V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W` \x91a\x03\xC6a\t\xF4V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x03\xE0\x84\x82Ta\n%V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x904a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81\x90`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R` a\x04Ha\t\xF4V[`$5\x90`\x01\x80`\xA0\x1B\x03\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04j\x83\x82Ta\n%V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[P4a\x01eW\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80`\x01\x80T\x90a\x04\x9F\x82a\t9V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x04\xD9W[a\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[Q\x91\x82\x91\x82a\t\xABV[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x1EWPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05\x01V[\x90Pa\x04\xD5\x97\x95P\x86\x93P` \x92Pa\x04\xCB\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x04\xBAV[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\x86a\t\xF4V[\x16\x81R`\x05\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01eW` 6`\x03\x19\x01\x12a\x01`W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xBEa\t\xF4V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`Wa\x05\xE8a\t\xF4V[`$5\x91`\x02T\x90\x83\x82\x01\x80\x92\x11a\x067WP`\x02U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03` \x90\x81R\x83\x85 \x80T\x84\x01\x90U\x92Q\x91\x82R\x91\x83\x91`\0\x80Q` a\x0B\xF0\x839\x81Q\x91R\x91\x90\xA3\x80\xF3[cNH{q`\xE0\x1B\x86R`\x11\x90R`$\x85\xFD[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90a\x06ea\nHV[\x90Q\x90\x81R\xF3[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R\xF3[P4a\x01eW``6`\x03\x19\x01\x12a\x01`Wa\x06\xC2a\t\xF4V[`\0\x80Q` a\x0B\xF0\x839\x81Q\x91Ra\x06\xD9a\n\x0FV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\x07EW[PPP\x86\x88R`\x03\x85R\x82\x88 a\x07&\x85\x82Ta\n%V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\x07N\x91a\n%V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\x07\x0EV[P4a\x01eW6`\x03\x19\x01\x12a\x01`W` \x90`\x02T\x90Q\x90\x81R\xF3[P\x914a\x01eW\x81`\x03\x196\x01\x12a\x01`W` \x92a\x07\xA2a\t\xF4V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x08\x99W\x80`\x03\x196\x01\x12a\x01`W\x81Q\x90\x80\x80T\x90a\x08\x15\x82a\t9V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x051WP`\x01\x14a\x08BWa\x04\xD5\x86\x88a\x04\xCB\x82\x89\x03\x83a\tsV[\x80\x80\x95PR\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x83\x85\x10a\x08\x86WPPPP\x81\x01` \x01a\x04\xCB\x82a\x04\xD5\x86a\x04\xBAV[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x08iV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\tiW[` \x83\x10\x14a\tSWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\tHV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\t\x95W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\t\xE0WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\t\xBEV[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\nWV[\x91\x90\x82\x03\x91\x82\x11a\n2WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03a\n\x96WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[`@Q\x81T\x82\x91a\n\xA6\x82a\t9V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x0B\xD1WPP`\x01\x14a\x0BxW[Pa\n\xD9\x92P\x03\x82a\tsV[Q\x90 \x91`@Q\x91\x82\x01\x92\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x84R`@\x83\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x83\x01RF`\x80\x83\x01R0`\xA0\x83\x01R`\xA0\x82R`\xC0\x82\x01\x90\x82\x82\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x17a\x0BdWP`@RQ\x90 \x90V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x87\x80R\x86\x91P\x87\x90\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c[\x85\x83\x10a\x0B\xB9WPPa\n\xD9\x93P\x82\x01\x018a\n\xCCV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x0B\xA2V[`\xFF\x19\x16\x88Ra\n\xD9\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\n\xCC\x90PV\xFE\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x9AR\x1F\xD9\x10\x18\xACv\x1D\x91\xAD\x94\xECv`\xD9\xD0QAl\x86\x81%\x1A\xCCl\x18\x1F\xDB\x08\xA1?dsolcC\0\x08\x16\x003`\xA0`@\x90\x80\x82R4b\0\x01[WP`\x01\x80U\x80Qa\x11D\x80\x82\x01\x91`\x01`\x01`@\x1B\x03\x91\x82\x84\x11\x82\x85\x10\x17b\0\x01EWb\0\x1E\xE5\x829\x80`\0\x93\x03\x90\x83\xF0\x80\x15b\0\x01;W`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81\x90R\x80;\x15b\0\0\xE9W\x90\x82\x80\x92`\x84\x86Q\x80\x96\x81\x93c&lE\xBB`\xE1\x1B\x83R\x89`\x04\x84\x01R\x81`D\x84\x01R```$\x84\x01R\x81`d\x84\x01RZ\xF1\x80\x15b\0\0\xDFWb\0\0\xB8W[\x83Qa\x1D<\x90\x81b\0\x01\xA9\x829`\x80Q\x81\x81\x81a\x0Bj\x01Ra\x10\x08\x01R\xF3[\x82\x11b\0\0\xCBWP\x81R8\x80\x80b\0\0\x99V[cNH{q`\xE0\x1B\x81R`A`\x04R`$\x90\xFD[\x84Q=\x84\x82>=\x90\xFD[\x83QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x83Q=\x84\x82>=\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@R`\x046\x10a\rCW`\x005`\xE0\x1C\x80c\x02\x16\xB88\x14a\0\xBCW\x80c\x06\x8B\xCD\x8D\x14a\0\xB7W\x80c\x14U\xF1\xFC\x14a\0\xB2W\x80c.\xC3\x81\x88\x14a\0\xADW\x80c;\xE6\xA3A\x14a\0\xA8W\x80c\x9D\x94/\x9A\x14a\0\xA3W\x80c\xACJ\xFA8\x14a\0\x9EW\x80c\xAF\xFE\xD0\xE0\x14a\0\x99W\x80c\xB4b\xCD%\x14a\0\x94W\x80c\xBD\x06%\xAB\x14a\0\x8FWc\xCE\x15;\xF4\x03a\rCWa\x0C\xE5V[a\x0B\x99V[a\x0BTV[a\x0B6V[a\n\x9EV[a\x08\xABV[a\x07oV[a\x050V[a\x04uV[a\x03\xC6V[a\x03\x18V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rjrray stride`\xA8\x1B`d\x82\x01R`\x84\x90\xFD[`@`\x03\x19\x82\x01\x12a\x03\x13W`\x045\x91`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x82\x11a\x03\x0EW\x80`#\x83\x01\x12\x15a\x02\xB5W\x81`\x04\x015\x93\x84\x11a\x02\\W`$\x84\x83\x01\x01\x11a\x02WW`$\x01\x91\x90V[a\x01\xB1V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x0ENL/$\r\x8C\xAD\xCC\xEE\x8D`\xAB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[a\x01aV[a\x01\x11V[4a\x03\xC1Wa\x03&6a\x02\nV[\x91`\x01T\x92`\x02`\0\x94\x14a\x03\xAFW`\x02`\x01Ua\x03C\x82a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAWa\x03z\x93\x85\x80\x94`@Q\x96\x87\x95\x86\x94\x85\x93c\xAC\xAD)\x89`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x03\x96W[Pa\x03\x93`\x01\x80UV[\x80\xF3[a\x03\x9F\x90a\x0E\x0FV[8a\x03\x89V[a\x0E\xA1V[a\r\xA6V[`@Qc\x03\xCB\x96\xDB`\xE2\x1B\x81R`\x04\x90\xFD[a\0\xC1V[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`@Qa\x03\xE3\x81a\x0E(V[`\xC0`\0\x91\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x82`\x80\x82\x01R\x82`\xA0\x82\x01R\x01R`\xE0a\x04!a\x04\x1B`\x045a\nPV[Pa\x0E\xBCV[`@Q\x90`\xC0`\x01\x80`\xA0\x1B\x03\x91\x82\x81Q\x16\x84R\x82` \x82\x01Q\x16` \x85\x01R\x82`@\x82\x01Q\x16`@\x85\x01R``\x81\x01Q``\x85\x01R`\x80\x81\x01Q`\x80\x85\x01R`\xA0\x81\x01Q`\xA0\x85\x01R\x01Q\x16`\xC0\x82\x01R\xF3[4a\x03\xC1W`\x03\x19` 6\x82\x01\x12a\x03\x13W`\x045\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x03\x0EW`\x80\x90\x826\x03\x01\x12a\x04\xDBWa\x04\xB5a\x04\xD7\x91`\x04\x01a\x0FMV[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R\x90\x81\x90`\x80\x82\x01\x90V[\x03\x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FABI decoding: struct calldata to`D\x82\x01Rf\x1B\xC8\x1C\xDA\x1B\xDC\x9D`\xCA\x1B`d\x82\x01R`\x84\x90\xFD[4a\x03\xC1Wa\x05>6a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x05{a\x05oa\x05oa\x05a\x85a\nPV[PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\x05\xA9\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\x07\x1CW[P\x15a\x06\xE2WP\x90\x81a\x05\xE5`\x03a\x05\xDCa\x04\xD7\x95a\nPV[P\x01T\x83a\x14\x0EV[\x93a\x05\xFD`\x04a\x05\xF4\x84a\nPV[P\x01T\x87a\x14\x0EV[\x95a\x06\x0C`\x05a\x05\xDC\x85a\nPV[\x93a\x06\x17\x85\x85a\x1A\xD5V[`\x03a\x06\"\x85a\nPV[P\x01U`\x04a\x060\x84a\nPV[P\x01U`\x05a\x06>\x83a\nPV[P\x01Ua\x06z\x85`\x01a\x06f\x87a\x06T\x86a\nPV[P\x83\x80`\xA0\x1B\x03\x93\x84\x91\x01T\x16a\x15\xB2V[`\x02a\x06q\x85a\nPV[P\x01T\x16a\x15\xB2V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\x95\x97W\x7F3\x93 w^c\xD3\xFE\xD7\xD5\xDD\xE66[\xAD\xCC\x9F\xCC\xDBf\xB3H\x94c\x0C\xA9\x8Bo\x90\x80`\x80\x81\x01[\x03\x90\xA2`\x01\x80U`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[\x80a\x07\x18a\x06\xF1`\0\x93a\x15\x1DV[`@Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x03\x90\xFD[\x93PPP\x92Pa\x07D\x91P`\xA0=`\xA0\x11a\x07RW[a\x07<\x81\x83a\x0EDV[\x81\x01\x90a\x13\x98V[\x94\x91\x90\x92\x90\x92\x94\x938a\x05\xC2V[P=a\x072V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x07jWV[`\0\x80\xFD[4a\x03\xC1W`@6`\x03\x19\x01\x12a\x03\x13W`\x045a\x07\x8C\x81a\x07YV[`$5\x90a\x07\xB3a\x05oa\x05o`\x06a\x07\xA4\x86a\nPV[P\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90\x81;\x15a\x03\xAAW`@Qcp\xA0\x821`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\x04\x82\x01R` \x80\x82`$\x81\x86Z\xFA\x91\x82\x15a\x03\xA5W`\0\x92a\x08\x8CW[P\x82;\x15a\x03\xAAW\x80`\x04\x93`@Q\x94\x85\x80\x92c\x18\x16\r\xDD`\xE0\x1B\x82RZ\xFA\x80\x15a\x03\xA5Wa\x04\xD7\x94a\x08F\x94a\x08@\x93`\0\x93a\x08VW[PPa\x088`\x05\x91a\nPV[P\x01Ta\x1CgV[\x90a\x1C\x89V[`@Q\x90\x81R\x90\x81\x90` \x82\x01\x90V[`\x05\x92\x93Pa\x088\x91\x81a\x08~\x92\x90=\x10a\x08\x85W[a\x08v\x81\x83a\x0EDV[\x81\x01\x90a\x14\xD9V[\x92\x91a\x08+V[P=a\x08lV[\x81a\x08\xA4\x92\x93P=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x908a\x07\xF2V[4a\x03\xC1Wa\x08\xB96a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x08\xDCa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\x8A\x04\xBD\xD5`\xE0\x1B\x81R\x93`\xA0\x92\x85\x92\x83\x91\x82\x91a\t\n\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x90\x81\x15a\x03\xA5W`\0\x90\x81\x82\x80\x95\x81\x95a\n#W[P\x15a\x06\xE2WP\x90\x81a\tF\x82`\x03a\t>a\x04\xD7\x96a\nPV[P\x01Ta\x14\x0EV[\x93a\tV\x86`\x04a\t>\x85a\nPV[\x95a\tf\x82`\x05a\t>\x86a\nPV[\x93a\tq\x85\x85a\x1B\xA8V[`\x03a\t|\x85a\nPV[P\x01U`\x04a\t\x8A\x84a\nPV[P\x01U`\x05a\t\x98\x83a\nPV[P\x01Ua\t\xDB\x85a\t\xA8\x83a\nPV[P`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x90a\t\xC5\x90\x88\x903\x90\x84\x16a\x16\xC7V[a\t\xCE\x84a\nPV[P`\x02\x01T3\x91\x16a\x16\xC7V[`@\x80Q\x91\x82R` \x82\x01\x85\x90R\x81\x01\x85\x90R``\x81\x01\x82\x90R3\x90\x7F\xAC\xBE\x12~\x93\xA8\xA0\xB2x\xD8\xE0n' [=\xF9\xD1\xF3\x81$\x14\xBC\x89\x17\xC7t\xA87\x101n\x90\x80`\x80\x81\x01a\x06\xBEV[\x93PPP\x92Pa\nB\x91P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x94\x91\x90\x92\x90\x92\x94\x938a\t#V[\x90`\0\x91\x82T\x81\x10\x15a\n\x8AW`\x07\x90\x83\x80R\x02\x7F)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\x01\x91\x90V[cNH{q`\xE0\x1B\x83R`2`\x04R`$\x83\xFD[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\0T\x81\x10\x15a\x07jWa\n\xC5\x90a\nPV[P\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x85\x01T`\x05\x86\x01T`\x06\x90\x96\x01T`@\x80Q`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x81R\x95\x87\x16` \x87\x01R\x93\x86\x16\x93\x85\x01\x93\x90\x93R``\x84\x01\x91\x90\x91R`\x80\x83\x01R`\xA0\x82\x01\x93\x90\x93R\x91\x16`\xC0\x82\x01R`\xE0\x90\xF3[`\0\x91\x03\x12a\x03\x13WV[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W` `\0T`@Q\x90\x81R\xF3[4a\x03\xC1W`\x006`\x03\x19\x01\x12a\x03\x13W`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\x03\xC1Wa\x0B\xA76a\x02\nV[\x91\x90`\x02`\x01T\x14a\x03\xAFW`\x02`\x01Ua\x0B\xCAa\x05oa\x05oa\x05a\x85a\nPV[\x92\x83;\x15a\x03\xAAW`@Qc\r\x17\xA7\xC7`\xE3\x1B\x81R\x93`\xC0\x92\x85\x92\x83\x91\x82\x91a\x0B\xF8\x91\x883`\x04\x86\x01a\x0EfV[\x03\x91Z\xFA\x91\x82\x15a\x03\xA5W`\0\x80\x93\x81\x80\x93\x81\x92a\x0C\xA8W[P\x15a\x0C\x99W\x83\x94P`\x05a\x0C(a\x0C1\x95a\nPV[P\x01U\x83a\x17eV[\x94\x92P\x92\x90P\x7FL}\xEF\x84\xE4++\xC0\xA5\xAA\xB2\"\x86\x8D\xD7\xA0\x92\xB53w\xA4\xB57\xAB\xCD\x944Zz\x85'\xED`@Q\x80a\x0C|\x87\x873\x96\x84`@\x91\x94\x93\x92``\x82\x01\x95\x15\x15\x82R` \x82\x01R\x01RV[\x03\x90\xA3a\x0C\x88`\x01\x80UV[`@\x80Q\x91\x82R` \x82\x01\x92\x90\x92R\xF3[`\0\x85a\x07\x18a\x06\xF1\x82a\x15\x1DV[\x93PPPPa\x0C\xD0\x91\x92P`\xC0=`\xC0\x11a\x0C\xDEW[a\x0C\xC8\x81\x83a\x0EDV[\x81\x01\x90a\x14\xE8V[\x93\x95\x94\x90\x93\x91\x92P8a\x0C\x11V[P=a\x0C\xBEV[4a\x03\xC1W` 6`\x03\x19\x01\x12a\x03\x13W`\x045`\x03a\r\x04\x82a\nPV[P\x01Ta\x04\xD7`\x05a\r#`\x04a\r\x1A\x86a\nPV[P\x01T\x94a\nPV[P\x01T`@Q\x93\x84\x93\x84`@\x91\x94\x93\x92``\x82\x01\x95\x82R` \x82\x01R\x01RV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x0E#W`@RV[a\r\xF9V[`\xE0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x0E#W`@RV[\x92\x84\x92`\x80\x95\x92`\x01\x80`\xA0\x1B\x03\x16\x85R` \x85\x01R```@\x85\x01R\x81``\x85\x01R\x84\x84\x017`\0\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`@Q=`\0\x82>=\x90\xFD[`@Q\x90a\x0E\xBA\x82a\x0E(V[V[\x90a\x0E\xBA`@Qa\x0E\xCC\x81a\x0E(V[`\xC0a\x0F?`\x06\x83\x96`\x01\x80`\xA0\x1B\x03\x80\x82T\x16\x86R`\x01\x82\x01T\x16` \x86\x01Ra\x0F\x13a\x0F\x03`\x02\x83\x01T`\x01\x80`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16`@\x87\x01RV[`\x03\x81\x01T``\x86\x01R`\x04\x81\x01T`\x80\x86\x01R`\x05\x81\x01T`\xA0\x86\x01R\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x91\x01RV[`\x02`\x01T\x14a\x03\xAFW`\x02`\x01U` \x81\x01a\x0Fi\x81a\x12wV[\x92`@\x93\x84\x84\x01\x90a\x0F}a\x05o\x83a\x12wV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x14a\x12fWa\x0F\x9Ca\x05oa\x05o\x86a\x12wV[\x93`\0\x90\x81Ta\x0F\xAF``\x83\x01\x83a\x12\xC9V[\x90\x97\x80;\x15a\x03\xAAWa\x0F\xDD\x98\x85`\xA0\x94\x8CQ\x9B\x8C\x95\x86\x94\x85\x93cs\xCB-\x03`\xE0\x1B\x85R3`\x04\x86\x01a\x0EfV[\x03\x92Z\xF1\x91\x82\x15a\x03\xA5W\x80\x97\x81\x82\x99\x83\x99\x84\x96a\x124W[P\x15a\x12\0WPa\x10,a\x05oa\x05o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15JV[\x94\x85;\x15a\x03\xAAW\x81Qc&lE\xBB`\xE1\x1B\x81R`@`\x04\x82\x01R`\0`D\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01R\x83\x81`\x84\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\xEDW[Pa\x10z\x85a\x13\xDCV[\x93\x86;\x15a\x03\xAAW\x82Qc@\xC1\x0F\x19`\xE0\x1B\x80\x82R3`\x04\x83\x01R`$\x82\x01\x96\x90\x96R\x84\x81`D\x81\x83\x8CZ\xF1\x80\x15a\x03\xA5Wa\x11\xDAW[P\x86;\x15a\x03\xAAW\x82Q\x94\x85R`\0`\x04\x86\x01Ra\x03\xE8`$\x86\x01R\x83\x85`D\x81\x83\x8BZ\xF1\x80\x15a\x03\xA5Wa\x11\x9Ba\x11\x95\x8C\x96a\x11\x8F\x8F\x94a\x11\x8A\x8F\x91\x9Da\x11ea\x11\xB3\x9Fa\x11\x9B\x9Ca\x11\xA5\x9Fa\x11)a\x11#\x8F\x94a\x11\xA0\x9Fa\x11T\x94a\x11\x1D\x92a\x11\xC1W[Pa\x12wV[\x98a\x12wV[\x93a\x12wV[\x92a\x11Da\x115a\x0E\xADV[`\x01`\x01`\xA0\x1B\x03\x90\x99\x16\x89RV[`\x01`\x01`\xA0\x1B\x03\x16` \x88\x01RV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x85\x01RV[``\x83\x01\x88\x90R`\x80\x83\x01\x8C\x90R`\xA0\x83\x01\x8E\x90R`\x01`\x01`\xA0\x1B\x03\x16`\xC0\x83\x01RV[a\x14\x1BV[Ta\x13\xF1V[\x9Aa\x12wV[a\x15\xB2V[a\x12wV[a\x11\xAE\x84a\x16LV[a\x13\xDCV[\x91\x93\x92\x91\x90a\x0E\xBA`\x01\x80UV[\x80a\x11\xCEa\x11\xD4\x92a\x0E\x0FV[\x80a\x0B+V[8a\x11\x17V[\x80a\x11\xCEa\x11\xE7\x92a\x0E\x0FV[8a\x10\xB1V[\x80a\x11\xCEa\x11\xFA\x92a\x0E\x0FV[8a\x10pV[\x90a\x07\x18\x90a\x12\x0E\x83a\x15\x1DV[\x90Qcw`m)`\xE1\x1B\x81R\x93\x90\x92\x12`\x04\x84\x01R`$\x83\x01\x91\x90\x91R\x81\x90`D\x82\x01\x90V[\x93\x9APPP\x92Pa\x12U\x91\x96P`\xA0=`\xA0\x11a\x07RWa\x07<\x81\x83a\x0EDV[\x91\x99\x90\x98\x91\x94\x91\x93\x90\x92\x908a\x0F\xF6V[\x84Qc3\x91\n\xEF`\xE1\x1B\x81R`\x04\x90\xFD[5a\x12\x81\x81a\x07YV[\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FCalldata tail too short\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x13FW\x01\x805\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\x13\x01W` \x01\x91\x816\x03\x83\x13a\x12\xFCWV[a\x12\x84V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail length\0\0\0\0`D\x82\x01R`d\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FInvalid calldata tail offset\0\0\0\0`D\x82\x01R`d\x90\xFD[Q\x90\x81\x15\x15\x82\x03a\x07jWV[\x90\x81`\xA0\x91\x03\x12a\x03\x13Wa\x13\xAC\x81a\x13\x8BV[\x91` \x82\x01Q\x91`@\x81\x01Q\x91`\x80``\x83\x01Q\x92\x01Q\x90V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[a\x03\xE7\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[a\x13\xC6V[`\0\x19\x81\x01\x91\x90\x82\x11a\x13\xECWV[`\x12\x03\x90`\x12\x82\x11a\x13\xECWV[\x91\x90\x82\x03\x91\x82\x11a\x13\xECWV[`\0Th\x01\0\0\0\0\0\0\0\0\x81\x10\x15a\x0E#W\x80`\x01a\x14?\x92\x01`\0Ua\nPV[a\x14\xC3W\x81Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x83U` \x84\x01Q`\x01\x84\x01\x80T\x91\x84\x16\x91\x83\x16\x91\x90\x91\x17\x90U`@\x84\x01Q`\x02\x84\x01\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x84\x01Q`\x03\x84\x01U`\x80\x84\x01Q`\x04\x84\x01U`\xA0\x84\x01Q`\x05\x84\x01U`\xC0\x90\x93\x01Q`\x06\x90\x92\x01\x80T\x90\x93\x16\x91\x16\x17\x90UV[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\x03\x13WQ\x90V[\x91\x90\x82`\xC0\x91\x03\x12a\x03\x13Wa\x14\xFD\x82a\x13\x8BV[\x91` \x81\x01Q\x91`@\x82\x01Q\x91``\x81\x01Q\x91`\xA0`\x80\x83\x01Q\x92\x01Q\x90V[`\x01`\xFF\x1B\x81\x14a\x158W`\0\x81\x12\x15a\x12\x81W\x19`\x01\x01\x90V[`@QcM-u\xB1`\xE0\x1B\x81R`\x04\x90\xFD[nZ\xF4=\x82\x80>\x90=\x91`+W\xFD[\xF3\x90v=`-\x80`\n=9\x81\xF36==7===6=s\0\0\0b\xFF\xFF\xFF\x82`\x88\x1C\x16\x17`\0R`x\x1B\x17` R`7`\t`\0\xF0\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x15\xA0WV[`@Qc0\xBE\x1A=`\xE2\x1B\x81R`\x04\x90\xFD[\x90a\x15\xC6\x90a\x15\xC0\x83a\x1ACV[\x90a\x1C\xAAV[\x90` `@Q\x92`d`\0\x80\x80\x95\x81\x94c#\xB8r\xDD`\xE0\x1B\x83R3`\x04R0`$R`DR`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x16\x13WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x14`$\x82\x01Rs\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x94\x93\xD3W\xD1\x90RS\x11Q`b\x1B`D\x82\x01R`d\x90\xFD[a\x16Xa\x04\x1B\x82a\nPV[\x90`\x01\x80`\xA0\x1B\x03\x90\x81\x83Q\x16\x90\x82` \x85\x01Q\x16\x92`@\x85\x01Q\x16\x93``\x81\x01Q`\xA0`\x80\x83\x01Q\x92\x01Q\x92`@Q\x94\x85R` \x85\x01R`@\x84\x01R``\x83\x01R`\x80\x82\x01R\x7F\xF7\xC0\x95\xAF\xDDB\r*7\x8A\x88r\x05\xCFW\xEB\xEE/m\xD0\x07\xDD\xD7c\xC8Z\xEA\xC0Z\xE3\xD7\xCA`\xA03\x92\xA4V[\x90\x91a\x16\xDE` \x91a\x16\xD8\x84a\x1ACV[\x90a\x1CgV[`D`@Q\x94`\0\x80\x95\x81\x94\x82\x93c\xA9\x05\x9C\xBB`\xE0\x1B\x84R`\x04R`$R`\x01\x80`\xA0\x1B\x03\x16Z\xF1=\x15`\x1F=\x11`\x01\x84Q\x14\x16\x17\x16\x90``R\x81`@R\x15a\x17$WPV[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x14\x90S\x94\xD1\x91T\x97\xD1\x90RS\x11Q`\x8A\x1B`D\x82\x01R`d\x90\xFD[\x91\x90\x82\x01\x80\x92\x11a\x13\xECWV[\x92\x91\x90`\x03a\x17s\x85a\nPV[P\x01T\x92a\x17\x80\x85a\nPV[P`\x04\x90\x81\x01T\x93\x85\x84\x11\x91\x90\x82\x15a\x19\xDDW\x85\x81\x10\x15a\x19\xCDW\x81a\x17\xE5a\x17\xAD`\x01a\x07\xA4\x8Ca\nPV[\x99a\x17\xD0\x84a\x17\xCAa\x17\xC3`\x02a\x07\xA4\x86a\nPV[\x9C\x8Ba\x14\x0EV[\x9Aa\x14\x0EV[\x97[`\x03a\x17\xDD\x83a\nPV[P\x01Ua\nPV[P\x01U`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x80;\x15a\x03\xAAW`@\x80Qcp\xA0\x821`\xE0\x1B\x80\x82R0\x86\x83\x01\x90\x81R\x92\x94\x91\x93\x90\x92\x90\x91` \x91\x82\x90\x86\x90\x81\x90\x83\x01\x03\x81\x86Z\xFA\x94\x85\x15a\x03\xA5W`\0\x95a\x19\xAEW[P\x8B\x16\x93\x84;\x15a\x03\xAAW\x85Q\x84\x81R0\x88\x82\x01\x90\x81R\x90\x94\x90\x83\x90\x86\x90\x81\x90` \x01\x03\x81\x89Z\xFA\x94\x85\x15a\x03\xA5W\x8D\x8F\x8E\x90\x8E\x93`\0\x99a\x19\x81W[Pa\x18\x8B\x93\x92\x91a\x18\x84\x91a\x15\xB2V[3\x90a\x16\xC7V[\x83;\x15a\x03\xAAW\x86Q\x81\x81R0\x89\x82\x01\x90\x81R\x90\x94\x84\x91\x86\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x93\x84\x15a\x03\xA5W`\0\x94a\x19bW[P\x85;\x15a\x03\xAAW\x86Q\x90\x81R0\x88\x82\x01\x90\x81R\x90\x95\x83\x91\x87\x91\x90\x82\x90\x81\x90` \x01\x03\x91Z\xFA\x94\x85\x15a\x03\xA5W\x8B\x92`\0\x96a\x19;W[PP\x90a\x19\x02\x91a\x17XV[\x11a\x19,W\x86a\x19\x11\x91a\x14\x0EV[\x11a\x19\x1FWPP\x94\x93\x92\x91\x90V[Qc\xF3\xCB\xBC\x87`\xE0\x1B\x81R\xFD[PPQc =\x90\x1D`\xE2\x1B\x81R\xFD[a\x19\x02\x93\x92\x96P\x90\x81a\x19Y\x92\x90=\x10a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x94\x90\x918a\x18\xF6V[a\x19z\x91\x94P\x83=\x85\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x928a\x18\xBFV[a\x18\x84\x91\x99P\x91a\x19\xA3a\x18\x8B\x95\x94\x93\x89=\x8B\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x99\x91P\x91\x92\x93a\x18tV[a\x19\xC6\x91\x95P\x82=\x84\x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x938a\x187V[P`@Qc\x11\x15vg`\xE0\x1B\x81R\xFD[\x86\x85\x97\x96\x97\x10\x15a\x19\xCDW\x81a\x17\xE5a\x19\xFA`\x02a\x07\xA4\x8Ca\nPV[\x99a\x1A\x17\x88a\x17\xCAa\x1A\x10`\x01a\x07\xA4\x86a\nPV[\x9C\x87a\x14\x0EV[\x97a\x17\xD2V[`M\x81\x11a\x13\xECW`\n\n\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x80\x83\x02\x92\x83\x04\x03a\x13\xECWV[`\x01`\x01`\xA0\x1B\x03\x16\x80;\x15a\x03\xAAW` `\x04\x91`@Q\x92\x83\x80\x92c1<\xE5g`\xE0\x1B\x82RZ\xFA\x90\x81\x15a\x03\xA5W`\0\x91a\x1A\x97W[Pa\x1A\x92a\x1A\x8D`\xFFa\x12\x81\x93\x16a\x14\0V[a\x1A\x1DV[a\x1A+V[\x90P` \x81=` \x11a\x1A\xCDW[\x81a\x1A\xB2` \x93\x83a\x0EDV[\x81\x01\x03\x12a\x03\x13WQ`\xFF\x81\x16\x81\x03a\x07jWa\x1A\x92a\x1AzV[=\x91Pa\x1A\xA5V[a\x1A\xE9a\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1B2\x93a\x08@\x92`\0\x92a\x1B\x80W[Pa\x1B)`\x05\x91a\nPV[P\x01T\x90a\x1CgV[\x90\x80;\x15a\x03\xAAW`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01[\x03\x92Z\xF1\x80\x15a\x03\xA5Wa\x1BsWPV[\x80a\x11\xCEa\x0E\xBA\x92a\x0E\x0FV[`\x05\x91\x92Pa\x1B\xA0a\x1B)\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\x1DV[a\x1B\xBCa\x05oa\x05o`\x06a\x07\xA4\x85a\nPV[\x91\x82;\x15a\x03\xAAW`@Qc\x18\x16\r\xDD`\xE0\x1B\x81R` \x81`\x04\x81\x87Z\xFA\x80\x15a\x03\xA5Wa\x1C\x0B\x93a\x1C\x05\x92`\0\x92a\x1C?W[Pa\x1B\xFC`\x05\x91a\nPV[P\x01T\x90a\x1C\xAAV[\x90a\x1C\xDAV[\x90\x80;\x15a\x03\xAAW`@Qc'p\xA7\xEB`\xE2\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x92\x90\x92R`\0\x90\x82\x90\x81\x83\x81`D\x81\x01a\x1BbV[`\x05\x91\x92Pa\x1C_a\x1B\xFC\x91` =` \x11a\x08\x85Wa\x08v\x81\x83a\x0EDV[\x92\x91Pa\x1B\xF0V[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x07jW\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jWg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V[\x90g\r\xE0\xB6\xB3\xA7d\0\0\x91\x82\x81\x02\x92\x81\x84\x04\x14\x90\x15\x17\x81\x15\x15\x16\x15a\x07jW`\x01\x90`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x07jW`\x01g\r\xE0\xB6\xB3\xA7d\0\0`\0\x19\x83\x01\x04\x01\x90\x15\x15\x02\x90V\xFE\xA2dipfsX\"\x12 \xA9X\x83\xDA\xDB\xC1 \xE8\xA7\xCC\x0B`U\xF5\xF7D\x7FA\x8D'u\x0B\xFF(\x1A\xD1\x05\xA0\xE5\xBC\xC4\x11dsolcC\0\x08\x16\x003`\x80\x80`@R4a\0\x19W`@Qa\x10\xDD\x90\x81a\0g\x829\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`@`\x80\x81R`\x04\x90\x816\x10\x15a\0rW[\x90` `\x84\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R\xFD[`\0\x805`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\x0B\x82W\x80c\t^\xA7\xB3\x14a\x0B\x13W\x80c\x15\x8E\xF9>\x14a\n\xEEW\x80c\x18\x16\r\xDD\x14a\n\xD1W\x80c#\xB8r\xDD\x14a\n\x11W\x80c1<\xE5g\x14a\t\xF7W\x80c6D\xE5\x15\x14a\t\xD5W\x80c@\xC1\x0F\x19\x14a\tMW\x80cL\xD8\x8Bv\x14a\x066W\x80cp\xA0\x821\x14a\x05\xFEW\x80c~\xCE\xBE\0\x14a\x05\xC6W\x80c\x95\xD8\x9BA\x14a\x04\xE4W\x80c\x9D\xC2\x9F\xAC\x14a\x04cW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF1W\x80c\xAF\xBA\x13\xC4\x14a\x03\xCAW\x80c\xD5\x05\xAC\xCF\x14a\x01\x8BWc\xDDb\xED>\x14a\x019WPa\0\x11V[\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92\x82\x91a\x01Wa\r\xC0V[a\x01_a\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x84R\x91\x86R\x83\x83 \x91\x16\x82R\x84R T\x90Q\x90\x81R\xF3[a\x0CeV[a\x0C\x15V[P\x904a\x01\x86W`\xE06`\x03\x19\x01\x12a\x01\x81Wa\x01\xA6a\r\xC0V[\x90a\x01\xAFa\r\xDBV[\x91`D5`d5\x92`\x845\x92`\xFF\x84\x16\x80\x94\x03a\x03\xC6WB\x85\x10a\x03\x83Wa\x01\xD5a\x0F\x18V[\x95`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x95\x86\x89R` \x95`\x07\x87R\x84\x8A \x98\x89T\x99`\x01\x8B\x01\x90U\x85Q\x92\x85\x89\x85\x01\x95\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x87R\x8B\x89\x87\x01R\x16\x9A\x8B``\x86\x01R\x88`\x80\x86\x01R`\xA0\x85\x01R`\xC0\x84\x01R`\xC0\x83R`\xE0\x83\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x84\x82\x10\x86\x83\x11\x17a\x03oW\x81\x88R\x84Q\x90 a\x01\0\x85\x01\x92a\x19\x01`\xF0\x1B\x84Ra\x01\x02\x86\x01Ra\x01\"\x85\x01R`B\x81Ra\x01`\x84\x01\x94\x81\x86\x10\x90\x86\x11\x17a\x03\\W\x84\x87RQ\x90 \x83Ra\x01\x80\x82\x01R`\xA45a\x01\xA0\x82\x01R`\xC45a\x01\xC0\x90\x91\x01R\x87\x80R\x84\x90\x88\x90`\x80\x90`\x01Z\xFA\x15a\x03RW\x86Q\x16\x96\x87\x15\x15\x80a\x03IW[\x15a\x03\x17W\x86\x97\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x95\x96\x97R\x83R\x80\x87 \x86\x88R\x83R\x81\x81\x88 UQ\x90\x81R\xA3\x80\xF3[\x83`d\x92Q\x91bF\x1B\xCD`\xE5\x1B\x83R\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R\xFD[P\x84\x88\x14a\x02\xD4V[\x81Q=\x88\x82>=\x90\xFD[cNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[PcNH{q`\xE0\x1B\x8CR`A\x8DR`$\x8C\xFD[\x81QbF\x1B\xCD`\xE5\x1B\x81R` \x81\x8A\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x90\xFD[\x86\x80\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W`\x08T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x904a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W` \x91a\x04\x0Ea\r\xC0V[\x82`$5\x913\x84R`\x03\x86R\x81\x84 a\x04(\x84\x82Ta\x0E\xF5V[\x90U`\x01`\x01`\xA0\x1B\x03\x16\x80\x84R`\x03\x86R\x92 \x80T\x82\x01\x90U\x82Q\x90\x81R3\x90`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x90\x85\x90\xA3Q`\x01\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\x04}a\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6WP\x84\x93\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x16\x93\x84\x86R`\x03\x83R\x80\x86 a\x04\xC4\x83\x82Ta\x0E\xF5V[\x90U\x81`\x02T\x03`\x02UQ\x90\x81R\xA3\x80\xF3[\x84QchS\xCB\xA7`\xE0\x1B\x81R\xFD[P4a\x01\x86W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80`\x01\x80T\x90a\x05\x07\x82a\x0C\xB5V[\x80\x86R\x92` \x92`\x01\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x05AW[a\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[Q\x91\x82\x91\x82a\r'V[\x03\x90\xF3[\x93P`\x01\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6[\x83\x85\x10a\x05\x86WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x05iV[\x90Pa\x05=\x97\x95P\x86\x93P` \x92Pa\x053\x94\x91P`\xFF\x19\x16\x82\x84\x01R\x15\x15`\x05\x1B\x82\x01\x01\x92\x94\x86a\x05\"V[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x05\xEEa\r\xC0V[\x16\x81R`\x07\x84R T\x90Q\x90\x81R\xF3[P\x904a\x01\x86W` 6`\x03\x19\x01\x12a\x01\x81W` \x91\x81\x90`\x01`\x01`\xA0\x1B\x03a\x06&a\r\xC0V[\x16\x81R`\x03\x84R T\x90Q\x90\x81R\xF3[P\x824a\x01\x86W\x82`\x03\x196\x01\x12a\x01\x81Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x815\x81\x81\x11a\tHWa\x06g\x906\x90\x84\x01a\r\xF1V[\x91`$5\x82\x81\x11a\tHWa\x06\x7F\x906\x90\x83\x01a\r\xF1V[\x94`\x08T\x90`\xFF\x82`\xA0\x1C\x16a\t:WP`\x01`\x01`\xA0\x1B\x03\x19\x163\x17`\x08U\x82Q\x82\x81\x11a\t'W\x80a\x06\xB3\x86Ta\x0C\xB5V[\x94`\x1F\x95\x86\x81\x11a\x08\xCEW[P` \x90\x86\x83\x11`\x01\x14a\x08_W\x87\x92a\x08TW[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x84U[\x84Q\x91\x82\x11a\x08AWP`\x01\x91a\x07\0\x83Ta\x0C\xB5V[\x81\x81\x11a\x07\xDFW[P` \x90\x82\x11`\x01\x14a\x07dW\x83\x94\x82\x93\x94\x92a\x07YW[PP`\0\x19`\x03\x83\x90\x1B\x1C\x19\x16\x90\x82\x1B\x17\x90U[F`\x05Ua\x07@a\x0F2V[`\x06U`\x08\x80T`\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B\x17\x90U\x80\xF3[\x01Q\x90P\x84\x80a\x07 V[\x82\x84R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x90`\x1F\x19\x83\x16\x85[\x81\x81\x10a\x07\xC9WP\x95\x83\x85\x96\x97\x10a\x07\xB0W[PPP\x81\x1B\x01\x90Ua\x074V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x84\x80\x80a\x07\xA3V[\x87\x83\x01Q\x84U\x92\x85\x01\x92` \x92\x83\x01\x92\x01a\x07\x90V[\x83\x85R\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6\x82\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\x088W[\x01`\x05\x1C\x01\x90\x84\x90[\x82\x81\x10a\x08-WPPa\x07\x08V[\x86\x81U\x01\x84\x90a\x08\x1FV[\x92P\x81\x92a\x08\x16V[cNH{q`\xE0\x1B\x84R`A\x90R`$\x83\xFD[\x01Q\x90P\x87\x80a\x06\xD4V[\x87\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x92P`\x1F\x19\x84\x16\x88[\x81\x81\x10a\x08\xB6WP\x90\x84`\x01\x95\x94\x93\x92\x10a\x08\x9DW[PPP\x81\x1B\x01\x84Ua\x06\xE9V[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U\x87\x80\x80a\x08\x90V[\x92\x93` `\x01\x81\x92\x87\x86\x01Q\x81U\x01\x95\x01\x93\x01a\x08zV[\x90\x91P\x86\x80R`\0\x80Q` a\x10h\x839\x81Q\x91R\x86\x80\x85\x01`\x05\x1C\x82\x01\x92` \x86\x10a\t\x1EW[\x90\x85\x94\x93\x92\x91\x01`\x05\x1C\x01\x90[\x81\x81\x10a\t\x10WPa\x06\xBFV[\x88\x81U\x84\x93P`\x01\x01a\t\x03V[\x92P\x81\x92a\x08\xF6V[cNH{q`\xE0\x1B\x85R`A\x82R`$\x85\xFD[Qb\xDC\x14\x9F`\xE4\x1B\x81R\x90P\xFD[a\rpV[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81Wa\tga\r\xC0V[`\x08T`$5\x92`\x01`\x01`\xA0\x1B\x03\x92\x91\x83\x163\x03a\x04\xD6W`\x02T\x90\x84\x82\x01\x80\x92\x11a\t\xC2WP\x92`\0\x80Q` a\x10\x88\x839\x81Q\x91R\x92` \x92\x87\x95`\x02U\x16\x94\x85\x85R`\x03\x83R\x80\x85 \x82\x81T\x01\x90UQ\x90\x81R\xA3\x80\xF3[cNH{q`\xE0\x1B\x87R`\x11\x90R`$\x86\xFD[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90a\t\xF0a\x0F\x18V[\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90Q`\x12\x81R\xF3[P4a\x01\x86W``6`\x03\x19\x01\x12a\x01\x81Wa\n+a\r\xC0V[`\0\x80Q` a\x10\x88\x839\x81Q\x91Ra\nBa\r\xDBV[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x80\x85R` \x87\x81R\x86\x86 3\x87R\x81R\x86\x86 T\x90\x97\x91\x94\x88\x93`D5\x93\x89\x93\x85`\x01\x82\x01a\n\xAEW[PPP\x86\x88R`\x03\x85R\x82\x88 a\n\x8F\x85\x82Ta\x0E\xF5V[\x90U\x16\x95\x86\x81R`\x03\x84R \x81\x81T\x01\x90U\x85Q\x90\x81R\xA3Q`\x01\x81R\xF3[a\n\xB7\x91a\x0E\xF5V[\x90\x88\x8AR\x86R\x83\x89 3\x8AR\x86R\x83\x89 U8\x80\x85a\nwV[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\x02T\x90Q\x90\x81R\xF3[P4a\x01\x86W6`\x03\x19\x01\x12a\x01\x81W` \x90`\xFF`\x08T`\xA0\x1C\x16\x90Q\x90\x15\x15\x81R\xF3[P\x914a\x01\x86W\x81`\x03\x196\x01\x12a\x01\x81W` \x92a\x0B0a\r\xC0V[\x91\x83`$5\x92\x83\x923\x82R\x87R\x81\x81 \x94`\x01\x80`\xA0\x1B\x03\x16\x94\x85\x82R\x87R U\x82Q\x90\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x843\x92\xA3Q`\x01\x81R\xF3[P4a\x0C\x15W\x80`\x03\x196\x01\x12a\x01\x81W\x81Q\x90\x80\x80T\x90a\x0B\xA3\x82a\x0C\xB5V[\x80\x85R\x91` \x91`\x01\x91\x82\x81\x16\x90\x81\x15a\x05\x99WP`\x01\x14a\x0B\xD0Wa\x05=\x86\x88a\x053\x82\x89\x03\x83a\x0C\xEFV[\x80\x80\x95PR`\0\x80Q` a\x10h\x839\x81Q\x91R[\x83\x85\x10a\x0C\x02WPPPP\x81\x01` \x01a\x053\x82a\x05=\x86a\x05\"V[\x80T\x86\x86\x01\x84\x01R\x93\x82\x01\x93\x81\x01a\x0B\xE5V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15a\x0C\xE5W[` \x83\x10\x14a\x0C\xCFWV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x0C\xC4V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[` \x80\x82R\x82Q\x81\x83\x01\x81\x90R\x90\x93\x92`\0[\x82\x81\x10a\r\\WPP`@\x92\x93P`\0\x83\x82\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[\x81\x81\x01\x86\x01Q\x84\x82\x01`@\x01R\x85\x01a\r:V[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: invalid tuple offs`D\x82\x01Ra\x19]`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[`\0\x80\xFD[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\r\xD6WV[\x81`\x1F\x82\x01\x12\x15a\x0E\x9CW\x805` \x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11a\r\x11W`@Q\x93a\x0E'`\x1F\x84\x01`\x1F\x19\x16\x85\x01\x86a\x0C\xEFV[\x82\x85R\x83\x83\x83\x01\x01\x11a\x0EGW\x90\x80\x83`\0\x94\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x81\x01\x84\x90R`'`$\x82\x01R\x7FABI decoding: invalid byte array`D\x82\x01Rf\x04\r\x8C\xAD\xCC\xEE\x8D`\xCB\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FABI decoding: invalid calldata a`D\x82\x01Rj\x1C\x9C\x98^H\x1B\xD9\x99\x9C\xD9]`\xAA\x1B`d\x82\x01R`\x84\x90\xFD[\x91\x90\x82\x03\x91\x82\x11a\x0F\x02WV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x05TF\x03a\x0F'W`\x06T\x90V[a\x0F/a\x0F2V[\x90V[`@Q`\0\x90`\0T\x90a\x0FE\x82a\x0C\xB5V[\x80\x82R\x81` \x94\x85\x82\x01\x94`\x01\x90\x87`\x01\x82\x16\x91\x82`\0\x14a\x10IWPP`\x01\x14a\x10\x01W[Pa\x0Fx\x92P\x03\x82a\x0C\xEFV[Q\x90 \x90`@Q\x90\x81\x01\x91\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R`@\x82\x01R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xA0\x81R`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\r\x11W`@RQ\x90 \x90V[`\0\x80\x80R\x87\x92P\x90`\0\x80Q` a\x10h\x839\x81Q\x91R[\x85\x83\x10a\x101WPPa\x0Fx\x93P\x82\x01\x018a\x0FkV[\x80T\x83\x88\x01\x85\x01R\x86\x94P\x88\x93\x90\x92\x01\x91\x81\x01a\x10\x1AV[`\xFF\x19\x16\x88Ra\x0Fx\x95\x15\x15`\x05\x1B\x85\x01\x01\x92P8\x91Pa\x0Fk\x90PV\xFE)\r\xEC\xD9T\x8Bb\xA8\xD6\x03E\xA9\x888o\xC8K\xA6\xBC\x95H@\x08\xF66/\x93\x16\x0E\xF3\xE5c\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\xA2dipfsX\"\x12 \x81t\xD6|I\xB2\\\xC2\xD92\x9E\x11\xC1\x0B)\xA6f9\xD1zG\x812\xF7~\xD9\xBC\x17bl\xCA5dsolcC\0\x08\x16\x003`\x80`@\x90\x80\x82R4a\x01\x06WP\x80Q`\x1Fa\x07\xA18\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xF0W\x80\x84\x92``\x94\x87R\x839\x81\x01\x03\x12a\0\xA1Wa\0O\x81a\x01SV[\x90\x82a\0]` \x83\x01a\x01SV[\x91\x01Q\x91`\x01\x80`\xA0\x1B\x03\x19\x913\x83`\0T\x16\x17`\0U`\x01\x80`\xA0\x1B\x03\x80\x92\x16\x83`\x01T\x16\x17`\x01U\x16\x90`\x02T\x16\x17`\x02U`\x03UQa\x064\x90\x81a\x01m\x829\xF3[\x81QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x01gWV[`\0\x80\xFD\xFE`\x80`@R`\x046\x10a\x04kW`\x005`\xE0\x1C\x80c; IH\x14a\0lW\x80c\x91\xB7\xF5\xED\x14a\0gW\x80c\xA05\xB1\xFE\x14a\0bW\x80c\xD0\x04\xF0\xF7\x14a\0]W\x80c\xD0\xC4r\xEC\x14a\0XWc\xF8Q\xA4@\x03a\x04kWa\x04BV[a\x04\x19V[a\x02\tV[a\x01\xEBV[a\x01:V[4a\0\x9AW`\x006`\x03\x19\x01\x12a\0\x95W`\x01T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[a\0\xEAV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FABI decoding: tuple data too sho`D\x82\x01Ra\x1C\x9D`\xF2\x1B`d\x82\x01R`\x84\x90\xFD[4a\x01\xE6W` 6`\x03\x19\x01\x12a\0\x95W`\0T`\x045\x90`\x01`\x01`\xA0\x1B\x03\x163\x03a\x01\x97W`@\x81\x7F\xFEk`l\xA0Gu\x92\xB5t\n\x0E\xB0\x0C\x8E\x91W\n]\x0E\xB76\xAB\xFA\x1Ac\t\xBD\x08\x1BJM\x92`\x03U\x81Q\x90\x81RB` \x82\x01R\xA1\0[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FOnly admin can call this functio`D\x82\x01R`7`\xF9\x1B`d\x82\x01R`\x84\x90\xFD[a\0\x9AV[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W` `\x03T`@Q\x90\x81R\xF3[4a\x01\xE6W`@6`\x03\x19\x01\x12a\0\x95W`\x045`\x01`\x01`\xA0\x1B\x03\x81\x81\x16\x91\x82\x81\x03a\x04\x14W`\x01T`$5\x92\x90`\x01`\x01`\xA0\x1B\x03\x16\x80\x82\x16\x85\x03a\x03\xBAWP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x91a\x02d`\x03T\x85a\x05\xDDV[\x91[\x85;\x15a\x03\x98W`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`D\x81\x01\x86\x90R` \x96\x87\x90\x82\x90`d\x90\x82\x90`\0\x90Z\xF1\x80\x15a\x03\x93Wa\x02\xB6\x91`\0\x91a\x03\x9DW[Pa\x05}V[\x83\x16\x91\x82;\x15a\x03\x98W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x92\x86\x90\x84\x90`D\x90\x82\x90`\0\x90Z\xF1\x95\x86\x15a\x03\x93W\x7F\xB3\x9C\x9B\xC4?\x81\x1E\x1A|\xE1Y\xC5\xF1GE\x8F\xDB\x80&k\xF2<\x172 \x131n'\xE0\x86\xD0\x96a\x03a\x94a\x03)\x92`\0\x92a\x03fW[PPa\x05}V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x92\x90\x94\x16` \x83\x01R\x92\x81\x01\x93\x90\x93R``\x83\x01\x91\x90\x91R3`\x80\x83\x01R\x81\x90`\xA0\x82\x01\x90V[\x03\x90\xA1\0[a\x03\x85\x92P\x80=\x10a\x03\x8CW[a\x03}\x81\x83a\x05!V[\x81\x01\x90a\x05YV[8\x80a\x03\"V[P=a\x03sV[a\x05qV[a\x04\xCEV[a\x03\xB4\x91P\x88=\x8A\x11a\x03\x8CWa\x03}\x81\x83a\x05!V[8a\x02\xB0V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x85\x03a\x03\xDFW\x91a\x03\xD9`\x03T\x85a\x05\xBBV[\x91a\x02fV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\r`$\x82\x01Rl$\xB7;0\xB64\xB2\x10:7\xB5\xB2\xB7`\x99\x1B`D\x82\x01R`d\x90\xFD[`\0\x80\xFD[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\xE6W`\x006`\x03\x19\x01\x12a\0\x95W`\0T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FContract does not have fallback `D\x82\x01Rtnor receive functions`X\x1B`d\x82\x01R`\x84\x90\xFD[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FTarget contract does not contain`D\x82\x01Rd code`\xD8\x1B`d\x82\x01R`\x84\x90\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x05CW`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x81` \x91\x03\x12a\0\x95WQ\x80\x15\x15\x81\x03a\x04\x14W\x90V[`@Q=`\0\x82>=\x90\xFD[\x15a\x05\x84WV[`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0F`$\x82\x01Rn\x15\x1C\x98[\x9C\xD9\x99\\\x88\x19\x98Z[\x19Y`\x8A\x1B`D\x82\x01R`d\x90\xFD[g\r\xE0\xB6\xB3\xA7d\0\0\x90\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17\x82\x15\x15\x16\x15a\x04\x14W\x04\x90V[\x81\x81\x02\x91\x81\x83\x04\x14\x90\x15\x17`\x01\x16\x15a\x04\x14Wg\r\xE0\xB6\xB3\xA7d\0\0\x90\x04\x90V\xFE\xA2dipfsX\"\x12 {\xAE\xDB\xFE\xAE\x82>\x87V\xE0\xCFLq\x1C\x10\xFF\x7FJ;\xA1\x80\xD1\x15\x9E\x81\x8F\xA5C\x88\x87\tddsolcC\0\x08\x16\x003\xA2dipfsX\"\x12 s\\\x1Co\xDA\xE0\xD2e!@\xF3p\xCF?\rB~\x0CQF\x04\x06\xE9T\xC59\xAD\xB12\xA9\x07\x9EdsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static SETUP_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct SetUp(::ethers::contract::Contract); - impl ::core::clone::Clone for SetUp { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for SetUp { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for SetUp { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for SetUp { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(SetUp)).field(&self.address()).finish() - } - } - impl SetUp { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - SETUP_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - SETUP_ABI.clone(), - SETUP_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `IS_TEST` (0xfa7626d4) function - pub fn is_test(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([250, 118, 38, 212], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `TEST_SWAP_FEE` (0x620a2607) function - pub fn test_swap_fee( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([98, 10, 38, 7], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeArtifacts` (0xb5508aa9) function - pub fn exclude_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([181, 80, 138, 169], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeContracts` (0xe20c9f71) function - pub fn exclude_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([226, 12, 159, 113], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeSenders` (0x1ed7831c) function - pub fn exclude_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([30, 215, 131, 28], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `failed` (0xba414fa6) function - pub fn failed(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([186, 65, 79, 166], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolLiquidityToken` (0xe21485ad) function - pub fn get_pool_liquidity_token( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([226, 20, 133, 173], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setUp` (0x0a9254e4) function - pub fn set_up(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([10, 146, 84, 228], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifactSelectors` (0x66d9a9a0) function - pub fn target_artifact_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([102, 217, 169, 160], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifacts` (0x85226c81) function - pub fn target_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([133, 34, 108, 129], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetContracts` (0x3f7286f4) function - pub fn target_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([63, 114, 134, 244], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetInterfaces` (0x2ade3880) function - pub fn target_interfaces( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([42, 222, 56, 128], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSelectors` (0x916a17c6) function - pub fn target_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([145, 106, 23, 198], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSenders` (0x3e5e3c23) function - pub fn target_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([62, 94, 60, 35], ()) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `log` event - pub fn log_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogFilter> { - self.0.event() - } - ///Gets the contract's `log_address` event - pub fn log_address_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogAddressFilter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_1_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray1Filter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_2_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray2Filter, - > { - self.0.event() - } - ///Gets the contract's `log_array` event - pub fn log_array_3_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogArray3Filter, - > { - self.0.event() - } - ///Gets the contract's `log_bytes` event - pub fn log_bytes_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogBytesFilter, - > { - self.0.event() - } - ///Gets the contract's `log_bytes32` event - pub fn log_bytes_32_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogBytes32Filter, - > { - self.0.event() - } - ///Gets the contract's `log_int` event - pub fn log_int_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogIntFilter> { - self.0.event() - } - ///Gets the contract's `log_named_address` event - pub fn log_named_address_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedAddressFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_1_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray1Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_2_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray2Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_array` event - pub fn log_named_array_3_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedArray3Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_bytes` event - pub fn log_named_bytes_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedBytesFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_bytes32` event - pub fn log_named_bytes_32_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedBytes32Filter, - > { - self.0.event() - } - ///Gets the contract's `log_named_decimal_int` event - pub fn log_named_decimal_int_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedDecimalIntFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_decimal_uint` event - pub fn log_named_decimal_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedDecimalUintFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_int` event - pub fn log_named_int_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedIntFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_string` event - pub fn log_named_string_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedStringFilter, - > { - self.0.event() - } - ///Gets the contract's `log_named_uint` event - pub fn log_named_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogNamedUintFilter, - > { - self.0.event() - } - ///Gets the contract's `log_string` event - pub fn log_string_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - LogStringFilter, - > { - self.0.event() - } - ///Gets the contract's `log_uint` event - pub fn log_uint_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogUintFilter> { - self.0.event() - } - ///Gets the contract's `logs` event - pub fn logs_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LogsFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SetUpEvents> { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for SetUp { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log", abi = "log(string)")] - pub struct LogFilter(pub ::std::string::String); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_address", abi = "log_address(address)")] - pub struct LogAddressFilter(pub ::ethers::core::types::Address); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(uint256[])")] - pub struct LogArray1Filter { - pub val: ::std::vec::Vec<::ethers::core::types::U256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(int256[])")] - pub struct LogArray2Filter { - pub val: ::std::vec::Vec<::ethers::core::types::I256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_array", abi = "log_array(address[])")] - pub struct LogArray3Filter { - pub val: ::std::vec::Vec<::ethers::core::types::Address>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_bytes", abi = "log_bytes(bytes)")] - pub struct LogBytesFilter(pub ::ethers::core::types::Bytes); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_bytes32", abi = "log_bytes32(bytes32)")] - pub struct LogBytes32Filter(pub [u8; 32]); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_int", abi = "log_int(int256)")] - pub struct LogIntFilter(pub ::ethers::core::types::I256); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_address", abi = "log_named_address(string,address)")] - pub struct LogNamedAddressFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,uint256[])")] - pub struct LogNamedArray1Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::U256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,int256[])")] - pub struct LogNamedArray2Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::I256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_array", abi = "log_named_array(string,address[])")] - pub struct LogNamedArray3Filter { - pub key: ::std::string::String, - pub val: ::std::vec::Vec<::ethers::core::types::Address>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_bytes", abi = "log_named_bytes(string,bytes)")] - pub struct LogNamedBytesFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_bytes32", abi = "log_named_bytes32(string,bytes32)")] - pub struct LogNamedBytes32Filter { - pub key: ::std::string::String, - pub val: [u8; 32], - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "log_named_decimal_int", - abi = "log_named_decimal_int(string,int256,uint256)" - )] - pub struct LogNamedDecimalIntFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::I256, - pub decimals: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "log_named_decimal_uint", - abi = "log_named_decimal_uint(string,uint256,uint256)" - )] - pub struct LogNamedDecimalUintFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::U256, - pub decimals: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_int", abi = "log_named_int(string,int256)")] - pub struct LogNamedIntFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_string", abi = "log_named_string(string,string)")] - pub struct LogNamedStringFilter { - pub key: ::std::string::String, - pub val: ::std::string::String, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_named_uint", abi = "log_named_uint(string,uint256)")] - pub struct LogNamedUintFilter { - pub key: ::std::string::String, - pub val: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_string", abi = "log_string(string)")] - pub struct LogStringFilter(pub ::std::string::String); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "log_uint", abi = "log_uint(uint256)")] - pub struct LogUintFilter(pub ::ethers::core::types::U256); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "logs", abi = "logs(bytes)")] - pub struct LogsFilter(pub ::ethers::core::types::Bytes); - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum SetUpEvents { - LogFilter(LogFilter), - LogAddressFilter(LogAddressFilter), - LogArray1Filter(LogArray1Filter), - LogArray2Filter(LogArray2Filter), - LogArray3Filter(LogArray3Filter), - LogBytesFilter(LogBytesFilter), - LogBytes32Filter(LogBytes32Filter), - LogIntFilter(LogIntFilter), - LogNamedAddressFilter(LogNamedAddressFilter), - LogNamedArray1Filter(LogNamedArray1Filter), - LogNamedArray2Filter(LogNamedArray2Filter), - LogNamedArray3Filter(LogNamedArray3Filter), - LogNamedBytesFilter(LogNamedBytesFilter), - LogNamedBytes32Filter(LogNamedBytes32Filter), - LogNamedDecimalIntFilter(LogNamedDecimalIntFilter), - LogNamedDecimalUintFilter(LogNamedDecimalUintFilter), - LogNamedIntFilter(LogNamedIntFilter), - LogNamedStringFilter(LogNamedStringFilter), - LogNamedUintFilter(LogNamedUintFilter), - LogStringFilter(LogStringFilter), - LogUintFilter(LogUintFilter), - LogsFilter(LogsFilter), - } - impl ::ethers::contract::EthLogDecode for SetUpEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = LogFilter::decode_log(log) { - return Ok(SetUpEvents::LogFilter(decoded)); - } - if let Ok(decoded) = LogAddressFilter::decode_log(log) { - return Ok(SetUpEvents::LogAddressFilter(decoded)); - } - if let Ok(decoded) = LogArray1Filter::decode_log(log) { - return Ok(SetUpEvents::LogArray1Filter(decoded)); - } - if let Ok(decoded) = LogArray2Filter::decode_log(log) { - return Ok(SetUpEvents::LogArray2Filter(decoded)); - } - if let Ok(decoded) = LogArray3Filter::decode_log(log) { - return Ok(SetUpEvents::LogArray3Filter(decoded)); - } - if let Ok(decoded) = LogBytesFilter::decode_log(log) { - return Ok(SetUpEvents::LogBytesFilter(decoded)); - } - if let Ok(decoded) = LogBytes32Filter::decode_log(log) { - return Ok(SetUpEvents::LogBytes32Filter(decoded)); - } - if let Ok(decoded) = LogIntFilter::decode_log(log) { - return Ok(SetUpEvents::LogIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedAddressFilter::decode_log(log) { - return Ok(SetUpEvents::LogNamedAddressFilter(decoded)); - } - if let Ok(decoded) = LogNamedArray1Filter::decode_log(log) { - return Ok(SetUpEvents::LogNamedArray1Filter(decoded)); - } - if let Ok(decoded) = LogNamedArray2Filter::decode_log(log) { - return Ok(SetUpEvents::LogNamedArray2Filter(decoded)); - } - if let Ok(decoded) = LogNamedArray3Filter::decode_log(log) { - return Ok(SetUpEvents::LogNamedArray3Filter(decoded)); - } - if let Ok(decoded) = LogNamedBytesFilter::decode_log(log) { - return Ok(SetUpEvents::LogNamedBytesFilter(decoded)); - } - if let Ok(decoded) = LogNamedBytes32Filter::decode_log(log) { - return Ok(SetUpEvents::LogNamedBytes32Filter(decoded)); - } - if let Ok(decoded) = LogNamedDecimalIntFilter::decode_log(log) { - return Ok(SetUpEvents::LogNamedDecimalIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedDecimalUintFilter::decode_log(log) { - return Ok(SetUpEvents::LogNamedDecimalUintFilter(decoded)); - } - if let Ok(decoded) = LogNamedIntFilter::decode_log(log) { - return Ok(SetUpEvents::LogNamedIntFilter(decoded)); - } - if let Ok(decoded) = LogNamedStringFilter::decode_log(log) { - return Ok(SetUpEvents::LogNamedStringFilter(decoded)); - } - if let Ok(decoded) = LogNamedUintFilter::decode_log(log) { - return Ok(SetUpEvents::LogNamedUintFilter(decoded)); - } - if let Ok(decoded) = LogStringFilter::decode_log(log) { - return Ok(SetUpEvents::LogStringFilter(decoded)); - } - if let Ok(decoded) = LogUintFilter::decode_log(log) { - return Ok(SetUpEvents::LogUintFilter(decoded)); - } - if let Ok(decoded) = LogsFilter::decode_log(log) { - return Ok(SetUpEvents::LogsFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for SetUpEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::LogFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogAddressFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray1Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray2Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogArray3Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogBytesFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogBytes32Filter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogIntFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogNamedAddressFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray1Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray2Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedArray3Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedBytesFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedBytes32Filter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedDecimalIntFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedDecimalUintFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedIntFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogNamedStringFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogNamedUintFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::LogStringFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogUintFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::LogsFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogFilter) -> Self { - Self::LogFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogAddressFilter) -> Self { - Self::LogAddressFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogArray1Filter) -> Self { - Self::LogArray1Filter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogArray2Filter) -> Self { - Self::LogArray2Filter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogArray3Filter) -> Self { - Self::LogArray3Filter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogBytesFilter) -> Self { - Self::LogBytesFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogBytes32Filter) -> Self { - Self::LogBytes32Filter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogIntFilter) -> Self { - Self::LogIntFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogNamedAddressFilter) -> Self { - Self::LogNamedAddressFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogNamedArray1Filter) -> Self { - Self::LogNamedArray1Filter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogNamedArray2Filter) -> Self { - Self::LogNamedArray2Filter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogNamedArray3Filter) -> Self { - Self::LogNamedArray3Filter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogNamedBytesFilter) -> Self { - Self::LogNamedBytesFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogNamedBytes32Filter) -> Self { - Self::LogNamedBytes32Filter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogNamedDecimalIntFilter) -> Self { - Self::LogNamedDecimalIntFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogNamedDecimalUintFilter) -> Self { - Self::LogNamedDecimalUintFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogNamedIntFilter) -> Self { - Self::LogNamedIntFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogNamedStringFilter) -> Self { - Self::LogNamedStringFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogNamedUintFilter) -> Self { - Self::LogNamedUintFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogStringFilter) -> Self { - Self::LogStringFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogUintFilter) -> Self { - Self::LogUintFilter(value) - } - } - impl ::core::convert::From for SetUpEvents { - fn from(value: LogsFilter) -> Self { - Self::LogsFilter(value) - } - } - ///Container type for all input parameters for the `IS_TEST` function with signature `IS_TEST()` and selector `0xfa7626d4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "IS_TEST", abi = "IS_TEST()")] - pub struct IsTestCall; - ///Container type for all input parameters for the `TEST_SWAP_FEE` function with signature `TEST_SWAP_FEE()` and selector `0x620a2607` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "TEST_SWAP_FEE", abi = "TEST_SWAP_FEE()")] - pub struct TestSwapFeeCall; - ///Container type for all input parameters for the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeArtifacts", abi = "excludeArtifacts()")] - pub struct ExcludeArtifactsCall; - ///Container type for all input parameters for the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeContracts", abi = "excludeContracts()")] - pub struct ExcludeContractsCall; - ///Container type for all input parameters for the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeSenders", abi = "excludeSenders()")] - pub struct ExcludeSendersCall; - ///Container type for all input parameters for the `failed` function with signature `failed()` and selector `0xba414fa6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "failed", abi = "failed()")] - pub struct FailedCall; - ///Container type for all input parameters for the `getPoolLiquidityToken` function with signature `getPoolLiquidityToken(uint256)` and selector `0xe21485ad` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolLiquidityToken", abi = "getPoolLiquidityToken(uint256)")] - pub struct GetPoolLiquidityTokenCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `setUp` function with signature `setUp()` and selector `0x0a9254e4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setUp", abi = "setUp()")] - pub struct SetUpCall; - ///Container type for all input parameters for the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifactSelectors", abi = "targetArtifactSelectors()")] - pub struct TargetArtifactSelectorsCall; - ///Container type for all input parameters for the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifacts", abi = "targetArtifacts()")] - pub struct TargetArtifactsCall; - ///Container type for all input parameters for the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetContracts", abi = "targetContracts()")] - pub struct TargetContractsCall; - ///Container type for all input parameters for the `targetInterfaces` function with signature `targetInterfaces()` and selector `0x2ade3880` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetInterfaces", abi = "targetInterfaces()")] - pub struct TargetInterfacesCall; - ///Container type for all input parameters for the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSelectors", abi = "targetSelectors()")] - pub struct TargetSelectorsCall; - ///Container type for all input parameters for the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSenders", abi = "targetSenders()")] - pub struct TargetSendersCall; - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum SetUpCalls { - IsTest(IsTestCall), - TestSwapFee(TestSwapFeeCall), - ExcludeArtifacts(ExcludeArtifactsCall), - ExcludeContracts(ExcludeContractsCall), - ExcludeSenders(ExcludeSendersCall), - Failed(FailedCall), - GetPoolLiquidityToken(GetPoolLiquidityTokenCall), - SetUp(SetUpCall), - TargetArtifactSelectors(TargetArtifactSelectorsCall), - TargetArtifacts(TargetArtifactsCall), - TargetContracts(TargetContractsCall), - TargetInterfaces(TargetInterfacesCall), - TargetSelectors(TargetSelectorsCall), - TargetSenders(TargetSendersCall), - } - impl ::ethers::core::abi::AbiDecode for SetUpCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::IsTest(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TestSwapFee(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeArtifacts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeContracts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ExcludeSenders(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Failed(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetPoolLiquidityToken(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SetUp(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetArtifactSelectors(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetArtifacts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetContracts(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetInterfaces(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetSelectors(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::TargetSenders(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for SetUpCalls { - fn encode(self) -> Vec { - match self { - Self::IsTest(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TestSwapFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Failed(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolLiquidityToken(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetUp(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TargetArtifactSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetInterfaces(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for SetUpCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::IsTest(element) => ::core::fmt::Display::fmt(element, f), - Self::TestSwapFee(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeSenders(element) => ::core::fmt::Display::fmt(element, f), - Self::Failed(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolLiquidityToken(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SetUp(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetArtifactSelectors(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TargetArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetInterfaces(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSelectors(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSenders(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: IsTestCall) -> Self { - Self::IsTest(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: TestSwapFeeCall) -> Self { - Self::TestSwapFee(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: ExcludeArtifactsCall) -> Self { - Self::ExcludeArtifacts(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: ExcludeContractsCall) -> Self { - Self::ExcludeContracts(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: ExcludeSendersCall) -> Self { - Self::ExcludeSenders(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: FailedCall) -> Self { - Self::Failed(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: GetPoolLiquidityTokenCall) -> Self { - Self::GetPoolLiquidityToken(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: SetUpCall) -> Self { - Self::SetUp(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: TargetArtifactSelectorsCall) -> Self { - Self::TargetArtifactSelectors(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: TargetArtifactsCall) -> Self { - Self::TargetArtifacts(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: TargetContractsCall) -> Self { - Self::TargetContracts(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: TargetInterfacesCall) -> Self { - Self::TargetInterfaces(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: TargetSelectorsCall) -> Self { - Self::TargetSelectors(value) - } - } - impl ::core::convert::From for SetUpCalls { - fn from(value: TargetSendersCall) -> Self { - Self::TargetSenders(value) - } - } - ///Container type for all return fields from the `IS_TEST` function with signature `IS_TEST()` and selector `0xfa7626d4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IsTestReturn(pub bool); - ///Container type for all return fields from the `TEST_SWAP_FEE` function with signature `TEST_SWAP_FEE()` and selector `0x620a2607` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TestSwapFeeReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeArtifactsReturn { - pub excluded_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeContractsReturn { - pub excluded_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeSendersReturn { - pub excluded_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `failed` function with signature `failed()` and selector `0xba414fa6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct FailedReturn(pub bool); - ///Container type for all return fields from the `getPoolLiquidityToken` function with signature `getPoolLiquidityToken(uint256)` and selector `0xe21485ad` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolLiquidityTokenReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactSelectorsReturn { - pub targeted_artifact_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactsReturn { - pub targeted_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetContractsReturn { - pub targeted_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `targetInterfaces` function with signature `targetInterfaces()` and selector `0x2ade3880` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetInterfacesReturn { - pub targeted_interfaces: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSelectorsReturn { - pub targeted_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSendersReturn { - pub targeted_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } -} diff --git a/crates/bindings/src/shared_types.rs b/crates/bindings/src/shared_types.rs deleted file mode 100644 index 2d8c03c15..000000000 --- a/crates/bindings/src/shared_types.rs +++ /dev/null @@ -1,72 +0,0 @@ -///`DynamicParam(uint256,uint256,int256,uint256)` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash -)] -pub struct DynamicParam { - pub last_computed_value: ::ethers::core::types::U256, - pub update_end: ::ethers::core::types::U256, - pub update_per_second: ::ethers::core::types::I256, - pub last_update_at: ::ethers::core::types::U256, -} -///`InitParams(address,address,address,bytes)` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash -)] -pub struct InitParams { - pub strategy: ::ethers::core::types::Address, - pub token_x: ::ethers::core::types::Address, - pub token_y: ::ethers::core::types::Address, - pub data: ::ethers::core::types::Bytes, -} -///`FuzzInterface(address,string[])` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash -)] -pub struct FuzzInterface { - pub addr: ::ethers::core::types::Address, - pub artifacts: ::std::vec::Vec<::std::string::String>, -} -///`FuzzSelector(address,bytes4[])` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash -)] -pub struct FuzzSelector { - pub addr: ::ethers::core::types::Address, - pub selectors: ::std::vec::Vec<[u8; 4]>, -} diff --git a/crates/bindings/src/signed_wad_math_lib.rs b/crates/bindings/src/signed_wad_math_lib.rs deleted file mode 100644 index 4fb580b08..000000000 --- a/crates/bindings/src/signed_wad_math_lib.rs +++ /dev/null @@ -1,125 +0,0 @@ -pub use signed_wad_math_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod signed_wad_math_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static SIGNEDWADMATHLIB_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x1BW`@Q`\x94\x90\x81a\0i\x8290\x81PP\xF3[bF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FEther sent to non-payable functi`D\x82\x01Ra7\xB7`\xF1\x1B`d\x82\x01R`\x84\x90\xFD\xFE`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 \xC0\xB8}\t\x1C&g\xC8\x9FI\x07W\xE8\x9C\xAB| I#\xFA\xE6@\xD6\xB9r\xA6V\x19\xB6a\xCDmdsolcC\0\x08\x16\x003"; - /// The bytecode of the contract. - pub static SIGNEDWADMATHLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@\x81\x90RbF\x1B\xCD`\xE5\x1B\x81R` `\x84\x90\x81R`5`\xA4R\x7FContract does not have fallback `\xC4Rtnor receive functions`X\x1B`\xE4R\x90\xFD\xFE\xA2dipfsX\"\x12 \xC0\xB8}\t\x1C&g\xC8\x9FI\x07W\xE8\x9C\xAB| I#\xFA\xE6@\xD6\xB9r\xA6V\x19\xB6a\xCDmdsolcC\0\x08\x16\x003"; - /// The deployed bytecode of the contract. - pub static SIGNEDWADMATHLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct SignedWadMathLib(::ethers::contract::Contract); - impl ::core::clone::Clone for SignedWadMathLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for SignedWadMathLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for SignedWadMathLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for SignedWadMathLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(SignedWadMathLib)) - .field(&self.address()) - .finish() - } - } - impl SignedWadMathLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - SIGNEDWADMATHLIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - SIGNEDWADMATHLIB_ABI.clone(), - SIGNEDWADMATHLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for SignedWadMathLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/strategy_lib.rs b/crates/bindings/src/strategy_lib.rs deleted file mode 100644 index 34a5f393c..000000000 --- a/crates/bindings/src/strategy_lib.rs +++ /dev/null @@ -1,74 +0,0 @@ -pub use strategy_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod strategy_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static STRATEGYLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct StrategyLib(::ethers::contract::Contract); - impl ::core::clone::Clone for StrategyLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for StrategyLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for StrategyLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for StrategyLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(StrategyLib)) - .field(&self.address()) - .finish() - } - } - impl StrategyLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - STRATEGYLIB_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for StrategyLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/strategy_like.rs b/crates/bindings/src/strategy_like.rs deleted file mode 100644 index 6078d0fcf..000000000 --- a/crates/bindings/src/strategy_like.rs +++ /dev/null @@ -1,531 +0,0 @@ -pub use strategy_like::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod strategy_like { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("getReservesAndLiquidity"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "getReservesAndLiquidity", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("internalPrice"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("internalPrice"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("simulateSwap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("simulateSwap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("swapXIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amountIn"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("valid"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("estimatedOut"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("estimatedPrice"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("payload"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("swap"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("swap"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("poolId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static STRATEGYLIKE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct StrategyLike(::ethers::contract::Contract); - impl ::core::clone::Clone for StrategyLike { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for StrategyLike { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for StrategyLike { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for StrategyLike { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(StrategyLike)) - .field(&self.address()) - .finish() - } - } - impl StrategyLike { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - STRATEGYLIKE_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `getReservesAndLiquidity` (0xce153bf4) function - pub fn get_reserves_and_liquidity( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ), - > { - self.0 - .method_hash([206, 21, 59, 244], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `internalPrice` (0x3b4d1030) function - pub fn internal_price( - &self, - pool_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([59, 77, 16, 48], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `simulateSwap` (0x3928ff97) function - pub fn simulate_swap( - &self, - pool_id: ::ethers::core::types::U256, - swap_x_in: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - bool, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::Bytes, - ), - > { - self.0 - .method_hash([57, 40, 255, 151], (pool_id, swap_x_in, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `swap` (0xbd0625ab) function - pub fn swap( - &self, - pool_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([189, 6, 37, 171], (pool_id, data)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for StrategyLike { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `getReservesAndLiquidity` function with signature `getReservesAndLiquidity(uint256)` and selector `0xce153bf4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getReservesAndLiquidity", - abi = "getReservesAndLiquidity(uint256)" - )] - pub struct GetReservesAndLiquidityCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `internalPrice` function with signature `internalPrice(uint256)` and selector `0x3b4d1030` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "internalPrice", abi = "internalPrice(uint256)")] - pub struct InternalPriceCall { - pub pool_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `simulateSwap` function with signature `simulateSwap(uint256,bool,uint256)` and selector `0x3928ff97` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "simulateSwap", abi = "simulateSwap(uint256,bool,uint256)")] - pub struct SimulateSwapCall { - pub pool_id: ::ethers::core::types::U256, - pub swap_x_in: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `swap` function with signature `swap(uint256,bytes)` and selector `0xbd0625ab` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "swap", abi = "swap(uint256,bytes)")] - pub struct SwapCall { - pub pool_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum StrategyLikeCalls { - GetReservesAndLiquidity(GetReservesAndLiquidityCall), - InternalPrice(InternalPriceCall), - SimulateSwap(SimulateSwapCall), - Swap(SwapCall), - } - impl ::ethers::core::abi::AbiDecode for StrategyLikeCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::GetReservesAndLiquidity(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InternalPrice(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::SimulateSwap(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Swap(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for StrategyLikeCalls { - fn encode(self) -> Vec { - match self { - Self::GetReservesAndLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InternalPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SimulateSwap(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Swap(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for StrategyLikeCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::GetReservesAndLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InternalPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::SimulateSwap(element) => ::core::fmt::Display::fmt(element, f), - Self::Swap(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for StrategyLikeCalls { - fn from(value: GetReservesAndLiquidityCall) -> Self { - Self::GetReservesAndLiquidity(value) - } - } - impl ::core::convert::From for StrategyLikeCalls { - fn from(value: InternalPriceCall) -> Self { - Self::InternalPrice(value) - } - } - impl ::core::convert::From for StrategyLikeCalls { - fn from(value: SimulateSwapCall) -> Self { - Self::SimulateSwap(value) - } - } - impl ::core::convert::From for StrategyLikeCalls { - fn from(value: SwapCall) -> Self { - Self::Swap(value) - } - } - ///Container type for all return fields from the `getReservesAndLiquidity` function with signature `getReservesAndLiquidity(uint256)` and selector `0xce153bf4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetReservesAndLiquidityReturn( - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::U256, - ); - ///Container type for all return fields from the `internalPrice` function with signature `internalPrice(uint256)` and selector `0x3b4d1030` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct InternalPriceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `simulateSwap` function with signature `simulateSwap(uint256,bool,uint256)` and selector `0x3928ff97` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SimulateSwapReturn { - pub valid: bool, - pub estimated_out: ::ethers::core::types::U256, - pub estimated_price: ::ethers::core::types::U256, - pub payload: ::ethers::core::types::Bytes, - } -} diff --git a/crates/bindings/src/token_like.rs b/crates/bindings/src/token_like.rs deleted file mode 100644 index 49510b5b9..000000000 --- a/crates/bindings/src/token_like.rs +++ /dev/null @@ -1,141 +0,0 @@ -pub use token_like::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod token_like { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static TOKENLIKE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct TokenLike(::ethers::contract::Contract); - impl ::core::clone::Clone for TokenLike { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for TokenLike { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for TokenLike { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for TokenLike { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(TokenLike)).field(&self.address()).finish() - } - } - impl TokenLike { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - TOKENLIKE_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for TokenLike { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); -} diff --git a/crates/bindings/src/units.rs b/crates/bindings/src/units.rs deleted file mode 100644 index 5897328db..000000000 --- a/crates/bindings/src/units.rs +++ /dev/null @@ -1,72 +0,0 @@ -pub use units::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod units { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static UNITS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct Units(::ethers::contract::Contract); - impl ::core::clone::Clone for Units { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Units { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Units { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Units { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Units)).field(&self.address()).finish() - } - } - impl Units { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - UNITS_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for Units { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/usdc.rs b/crates/bindings/src/usdc.rs deleted file mode 100644 index ef7ef5ebb..000000000 --- a/crates/bindings/src/usdc.rs +++ /dev/null @@ -1,347 +0,0 @@ -pub use usdc::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod usdc { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("configureMinter"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("configureMinter"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("minter"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned( - "minterAllowedAmount", - ), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("masterMinter"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("masterMinter"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("mint"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("mint"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static USDC_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( - __abi, - ); - pub struct USDC(::ethers::contract::Contract); - impl ::core::clone::Clone for USDC { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for USDC { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for USDC { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for USDC { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(USDC)).field(&self.address()).finish() - } - } - impl USDC { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - USDC_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `configureMinter` (0x4e44d956) function - pub fn configure_minter( - &self, - minter: ::ethers::core::types::Address, - minter_allowed_amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([78, 68, 217, 86], (minter, minter_allowed_amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `masterMinter` (0x35d99f35) function - pub fn master_minter( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([53, 217, 159, 53], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, amount)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for USDC { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `configureMinter` function with signature `configureMinter(address,uint256)` and selector `0x4e44d956` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "configureMinter", abi = "configureMinter(address,uint256)")] - pub struct ConfigureMinterCall { - pub minter: ::ethers::core::types::Address, - pub minter_allowed_amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `masterMinter` function with signature `masterMinter()` and selector `0x35d99f35` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "masterMinter", abi = "masterMinter()")] - pub struct MasterMinterCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash - )] - pub enum USDCCalls { - ConfigureMinter(ConfigureMinterCall), - MasterMinter(MasterMinterCall), - Mint(MintCall), - } - impl ::ethers::core::abi::AbiDecode for USDCCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::ConfigureMinter(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::MasterMinter(decoded)); - } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::Mint(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for USDCCalls { - fn encode(self) -> Vec { - match self { - Self::ConfigureMinter(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::MasterMinter(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for USDCCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ConfigureMinter(element) => ::core::fmt::Display::fmt(element, f), - Self::MasterMinter(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for USDCCalls { - fn from(value: ConfigureMinterCall) -> Self { - Self::ConfigureMinter(value) - } - } - impl ::core::convert::From for USDCCalls { - fn from(value: MasterMinterCall) -> Self { - Self::MasterMinter(value) - } - } - impl ::core::convert::From for USDCCalls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - ///Container type for all return fields from the `configureMinter` function with signature `configureMinter(address,uint256)` and selector `0x4e44d956` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ConfigureMinterReturn(pub bool); - ///Container type for all return fields from the `masterMinter` function with signature `masterMinter()` and selector `0x35d99f35` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MasterMinterReturn(pub ::ethers::core::types::Address); -} diff --git a/crates/clients/Cargo.toml b/crates/clients/Cargo.toml deleted file mode 100644 index 141b60342..000000000 --- a/crates/clients/Cargo.toml +++ /dev/null @@ -1,26 +0,0 @@ -[package] -name = "clients" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -# ledger transport api -coins-ledger = { git = "https://github.com/summa-tx/coins.git", branch = "prestwich/more-ledger-refactor" } -coins-bip32 = { git = "https://github.com/summa-tx/coins.git" } - -revm.workspace = true -thiserror.workspace = true -bindings.workspace = true -anyhow.workspace = true -arbiter-core.workspace = true -arbiter-bindings.workspace = true -ethers.workspace = true -dotenv.workspace = true -serde.workspace = true -serde_json.workspace = true -tracing.workspace = true -tracing-futures.workspace = true -tracing-subscriber.workspace = true -tokio.workspace = true diff --git a/crates/clients/readme.md b/crates/clients/readme.md deleted file mode 100644 index 71ba0fd93..000000000 --- a/crates/clients/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# Clients - -Clients are things that we asynchronously communicate to for the user. Examples are Wallets and RPCs. \ No newline at end of file diff --git a/crates/clients/src/client.rs b/crates/clients/src/client.rs deleted file mode 100644 index a3d522812..000000000 --- a/crates/clients/src/client.rs +++ /dev/null @@ -1,204 +0,0 @@ -use std::sync::Arc; - -use bindings::coin::Coin; -use ethers::{ - core::k256::ecdsa::SigningKey, - middleware::SignerMiddleware, - prelude::*, - utils::{Anvil, AnvilInstance}, -}; -use tracing::info; - -const RPC_URL_WS: &str = "ws://localhost:8545"; -const CHAIN_ID: u64 = 31337; - -#[derive(Clone)] -pub struct Local -where - S: Send, -{ - pub client: Option>>, - pub anvil: Option>, - pub counter_contract: Option

, - pub coin_contract: Option
, -} - -impl std::fmt::Debug for Local { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("Local") - .field("client", &self.client.is_some()) - .field("anvil", &self.anvil.is_some()) - .finish() - } -} - -impl Default for Local { - fn default() -> Self { - Self { - client: None, - anvil: None, - counter_contract: None, - coin_contract: None, - } - } -} - -impl Local, Wallet> { - pub async fn new() -> anyhow::Result { - // connect to the network - let provider = Provider::::connect(RPC_URL_WS).await?; - info!("Connected to network at url {}", RPC_URL_WS); - - // Get private key from env variable - let pk = std::env::var("PRIVATE_KEY_DEV").expect("PRIVATE_KEY env var not set"); - - // make a wallet to use - let wallet = pk.parse::()?.with_chain_id(CHAIN_ID); - - // connect the wallet to the provider - let client = Arc::new(SignerMiddleware::new(provider, wallet)); - - Ok(Self { - client: Some(client.clone()), - anvil: None, - counter_contract: None, - coin_contract: None, - }) - } - - /// For running anvil in the background of Excalibur. - pub fn with_anvil(self) -> Self { - let anvil = Anvil::default() - .arg("--gas-limit") - .arg("20000000") - .chain_id(CHAIN_ID) - .spawn(); - - tracing::info!("Anvil running at {}", anvil.endpoint()); - - Self { - anvil: Some(Arc::new(anvil)), - ..self - } - } - - /// For using the default anvil wallet. - pub async fn with_dev_wallet(self) -> Self { - let client = match self.anvil { - // If anvil is running, use the private key at index 0. - Some(ref anvil) => { - let wallet: LocalWallet = anvil - .keys() - .first() - .expect("no keys in anvil") - .clone() - .into(); - let wallet = wallet.with_chain_id(anvil.chain_id()); - let url = anvil.endpoint(); - let url = url.replace("http", "ws"); - - let provider = Provider::::connect(&url) - .await - .expect("failed to connect to anvil"); - - Arc::new(SignerMiddleware::new(provider, wallet)) - } - None => panic!("anvil not running"), - }; - - Self { - client: Some(client), - ..self - } - } - - pub async fn with_coin(self) -> Self { - let client = self.client.unwrap(); - let client_address = client.address(); - tracing::info!( - "Deploying coin from address: 0x{:x}", - client_address.clone() - ); - let coin = Coin::deploy(client.clone(), ethers::utils::parse_ether("25").unwrap()) - .unwrap() - .send() - .await - .unwrap(); - - tracing::info!( - "Client balance: {}", - coin.balance_of(client_address).call().await.unwrap(), - ); - - let coin = coin.address(); - - tracing::info!("Deployed counter coin at 0x{:x}", coin); - - Self { - client: Some(client), - coin_contract: Some(coin), - ..self - } - } -} - -#[derive(Clone)] -pub struct AnvilClient { - pub anvil: Arc, -} - -impl std::fmt::Debug for AnvilClient { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("AnvilClient").finish() - } -} - -impl AnvilClient { - pub fn new() -> anyhow::Result { - let anvil = Anvil::default() - .arg("--gas-limit") - .arg("20000000") - .chain_id(CHAIN_ID) - .spawn(); - - tracing::info!("Anvil running at {}", anvil.endpoint()); - - Ok(Self { - anvil: Arc::new(anvil), - }) - } - - #[tracing::instrument(skip(self), level = "trace", ret)] - pub async fn snapshot(&self) -> String { - // Create a provider to do an rpc call with. - let url = self.anvil.endpoint(); - - let provider = Provider::::connect(&url).await; - - let params: Vec = vec![]; - provider - .request("anvil_dumpState", params) - .await - .expect("failed to get snapshot") - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[tokio::test] - async fn test_local_anvil() { - let local = Local::, Wallet>::default().with_anvil(); - assert!(local.anvil.is_some()); - } - - #[tokio::test] - async fn test_with_dev_wallet() { - let local = Local::, Wallet>::default() - .with_anvil() - .with_dev_wallet() - .await; - assert!(local.client.is_some()); - } -} diff --git a/crates/clients/src/dev.rs b/crates/clients/src/dev.rs deleted file mode 100644 index 6e2aaff74..000000000 --- a/crates/clients/src/dev.rs +++ /dev/null @@ -1,187 +0,0 @@ -//! A client for setting a local development environment. - -use std::sync::Arc; - -use anyhow::Result; -use arbiter_bindings::bindings::{arbiter_token::ArbiterToken, liquid_exchange::LiquidExchange}; -use bindings::{log_normal::LogNormal, log_normal_solver::LogNormalSolver}; - -use self::protocol::{LogNormalF64, PoolInitParamsF64}; -use super::{protocol::ProtocolClient, *}; - -pub const INITIAL_X_BALANCE: f64 = 100.0; -pub const INITIAL_Y_BALANCE: f64 = 100.0; -pub const INITIAL_PRICE: f64 = 1.0; - -/// Client for easily setting up the development environment for the protocol. -#[derive(Debug, Clone)] -pub struct DevClient { - pub protocol: ProtocolClient, - pub strategy: LogNormal, - pub solver: LogNormalSolver, - pub liquid_exchange: LiquidExchange, - pub token_x: ArbiterToken, - pub token_y: ArbiterToken, -} - -impl DevClient { - pub fn client(&self) -> Arc { - self.protocol.client.clone() - } - - pub async fn balance_of_x(&self, address: Address) -> Result { - Ok(self.token_x.balance_of(address).call().await?) - } - - pub async fn balance_of_y(&self, address: Address) -> Result { - Ok(self.token_y.balance_of(address).call().await?) - } - - #[tracing::instrument(skip(client), level = "trace")] - pub async fn deploy(client: Arc, sender: Address) -> Result { - tracing::trace!("Deploying token x"); - let token_x_args = ("Token X".to_string(), "X".to_string(), 18_u8); - let token_x = ArbiterToken::deploy(client.clone(), token_x_args)? - .send() - .await?; - - tracing::trace!("Deploying token y"); - let token_y_args = ("Token Y".to_string(), "Y".to_string(), 18_u8); - let token_y = ArbiterToken::deploy(client.clone(), token_y_args)? - .send() - .await?; - - tracing::trace!("Minting token x to sender: {}", sender); - token_x - .mint(sender, ethers::utils::parse_ether(INITIAL_X_BALANCE)?) - .send() - .await? - .await?; - - tracing::trace!("Minting token x to sender: {}", sender); - token_y - .mint(sender, ethers::utils::parse_ether(INITIAL_Y_BALANCE)?) - .send() - .await? - .await?; - - let swap_fee_percent_wad = 0.003; - tracing::trace!("Deploying protocol"); - let protocol = ProtocolClient::new( - client.clone(), - token_x.address(), - token_y.address(), - swap_fee_percent_wad, - ) - .await?; - - tracing::trace!("Approving tokens"); - token_x - .approve(protocol.protocol.address(), ethers::types::U256::MAX) - .send() - .await? - .await?; - token_y - .approve(protocol.protocol.address(), ethers::types::U256::MAX) - .send() - .await? - .await?; - - let lex_args = ( - token_x.address(), - token_y.address(), - ethers::utils::parse_ether(INITIAL_PRICE)?, - ); - - let liquid_exchange = LiquidExchange::deploy(client.clone(), lex_args)? - .send() - .await?; - - let solver = LogNormalSolver::deploy(client.clone(), protocol.ln_strategy.address())? - .send() - .await?; - - let strategy = LogNormal::new(protocol.ln_strategy.address(), client); - // Make sure to set the token y price to 1.0. - - Ok(Self { - protocol, - token_x, - token_y, - strategy, - solver, - liquid_exchange, - }) - } - - #[tracing::instrument(skip(self), level = "trace", ret)] - pub async fn create_position( - &mut self, - sender: Address, - amount_dollars: f64, - price: f64, - strike_price_wad: f64, - sigma_percent_wad: f64, - tau_years_wad: f64, - ) -> Result { - let amount_x = amount_dollars / price; - let amount_y = amount_x * price; - let amount_x_wad = ethers::utils::parse_ether(amount_x)?; - let amount_y_wad = ethers::utils::parse_ether(amount_y)?; - let price_wad = ethers::utils::parse_ether(price)?; - - let init_params = PoolInitParamsF64::LogNormal(LogNormalF64 { - strike: strike_price_wad, - sigma: sigma_percent_wad, - tau: tau_years_wad, - swap_fee: 0.003, - controller: sender, - }); - - let token_x = self.token_x.address(); - let token_y = self.token_y.address(); - - self.token_x.mint(sender, amount_x_wad).send().await?; - self.token_y.mint(sender, amount_y_wad).send().await?; - - let tx = self - .protocol - .init_pool(token_x, token_y, amount_x_wad, price_wad, init_params) - .await?; - - Ok(tx) - } - - pub async fn get_position(&self, pool_id: U256) -> Result { - let (balance_x, balance_y, liquidity) = self - .protocol - .protocol - .get_reserves_and_liquidity(pool_id) - .await?; - let internal_price = self.protocol.get_internal_price(pool_id).await?; - let balance_x = ethers::utils::format_ether(balance_x); - let balance_y = ethers::utils::format_ether(balance_y); - let liquidity = ethers::utils::format_ether(liquidity); - let internal_price = ethers::utils::format_ether(internal_price); - - let balance_x = format!("{:.2}", balance_x.parse::().unwrap()); - let balance_y = format!("{:.2}", balance_y.parse::().unwrap()); - let liquidity = format!("{:.2}", liquidity.parse::().unwrap()); - let internal_price = format!("{:.2}", internal_price.parse::().unwrap()); - - Ok(ProtocolPosition { - balance_x: Some(balance_x), - balance_y: Some(balance_y), - liquidity: Some(liquidity), - internal_price: Some(internal_price), - }) - } -} - -#[derive(Debug, Clone, Default, serde::Serialize, serde::Deserialize)] -pub struct ProtocolPosition { - pub balance_x: Option, - pub balance_y: Option, - pub liquidity: Option, - pub internal_price: Option, -} diff --git a/crates/clients/src/ledger/mod.rs b/crates/clients/src/ledger/mod.rs deleted file mode 100644 index ded2756c5..000000000 --- a/crates/clients/src/ledger/mod.rs +++ /dev/null @@ -1,267 +0,0 @@ -pub mod types; -use coins_ledger::{ - common::{APDUData, APDUResponseCodes}, - errors::LedgerError, - transports::LedgerAsync, - APDUCommand, Ledger, -}; -use ethers::{ - types::{Address, Signature, TransactionRequest, U256}, - utils::hex, -}; - -use self::types::*; - -#[derive(Debug)] -pub struct LedgerClient { - ledger: Ledger, - derivation: DerivationType, -} - -impl LedgerClient { - pub async fn new_connection(derivation: DerivationType) -> anyhow::Result { - Ok(Self { - ledger: Ledger::init().await?, - derivation, - }) - } - - /// Get the account which corresponds to our derivation path - pub async fn get_address(&self) -> Result { - self.get_address_with_path_transport().await - } - - async fn get_address_with_path_transport(&self) -> Result { - let data = APDUData::new(&Self::path_to_bytes(&self.derivation)); - - let command = APDUCommand { - ins: Instruction::GetPublicKey as u8, - p1: P1_NON_CONFIRM, - p2: P2_NO_CHAINCODE, - data, - response_len: None, - }; - - tracing::debug!("Dispatching get_address request to ethereum app"); - let answer = self.ledger.exchange(&command).await?; - let result = answer.data().unwrap(); - - let address = { - // extract the address from the response - let offset = 1 + result[0] as usize; - let address_str = &result[offset + 1..offset + 1 + result[offset] as usize]; - let mut address = [0; 20]; - address.copy_from_slice(&hex::decode(address_str).unwrap()); - Address::from(address) - }; - tracing::debug!(?address, "Received address from device"); - Ok(address) - } - - /// Returns the semver of the Ethereum ledger app - pub async fn version(&self) -> Result { - let command = APDUCommand { - ins: Instruction::GetAppConfiguration as u8, - p1: P1_NON_CONFIRM, - p2: P2_NO_CHAINCODE, - data: APDUData::new(&[]), - response_len: None, - }; - - tracing::debug!("Dispatching get_version"); - let answer = self.ledger.exchange(&command).await?; - let result = answer.data().unwrap(); - if result.len() < 4 { - return Err(LedgerClienError::LedgerError( - coins_ledger::LedgerError::BadRetcode(APDUResponseCodes::OutputBufferTooSmall), - )); - } - let version = format!("{}.{}.{}", result[1], result[2], result[3]); - tracing::debug!(version, "Retrieved version from device"); - Ok(version) - } - - /// Signs an Ethereum transaction (requires confirmation on the ledger) - pub async fn sign_tx(&self, tx: &TransactionRequest) -> Result { - let mut payload = Self::path_to_bytes(&self.derivation); - payload.extend_from_slice(&tx.rlp()); - let signature = self.sign_encoded_tx(&payload).await?; - Ok(signature) - } - - pub async fn get_app_configuration(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn sign_personal_message(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn provide_erc20_token_information(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn sign_eip_712_message(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn get_eth2_public_key(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn set_eth2_withdrawal_index(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn provide_nft_information(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn set_plugin(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn perform_privacy_operation(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn eip712_struct_def(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn eip712_struct_impl(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn eip712_filtering(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn ens_get_challenge(&self) -> Result<(), LedgerError> { - todo!() - } - - pub async fn ens_provide_info(&self) -> Result<(), LedgerError> { - todo!() - } - - // helper which converts a derivation path to bytes - fn path_to_bytes(derivation: &DerivationType) -> Vec { - let derivation = derivation.to_string(); - let elements = derivation.split('/').skip(1).collect::>(); - let depth = elements.len(); - - let mut bytes = vec![depth as u8]; - for derivation_index in elements { - let hardened = derivation_index.contains('\''); - let mut index = derivation_index.replace('\'', "").parse::().unwrap(); - if hardened { - index |= 0x80000000; - } - - bytes.extend(index.to_be_bytes()); - } - bytes - } - // Helper to get the currently opened app on the ledger - async fn get_opened_app(&self) -> Result { - let command = APDUCommand { - ins: 0x01, - p1: 0x00, - p2: 0x00, - data: APDUData::new(&[]), - response_len: None, - }; - - let result = self.ledger.exchange(&command).await?; - let result = result.data().unwrap(); - let len: usize = result[1].into(); - Ok(String::from_utf8(result[2..2 + len].to_vec()).unwrap()) - } - - // Helper function for signing either transaction data, personal messages or - // EIP712 derived structs - pub async fn sign_encoded_tx(&self, encoded_tx: &[u8]) -> Result { - if encoded_tx.is_empty() { - return Err(LedgerClienError::CommandError( - ("Payload is empty").to_string(), - )); - } - let command = APDUCommand { - ins: Instruction::Sign as u8, - p1: P1_FIRST, - p2: P2_NO_CHAINCODE, - data: APDUData::new(encoded_tx), - response_len: None, - }; - - let result = self.ledger.exchange(&command).await?; - if result.len() < 65 { - return Err(LedgerClienError::LedgerError( - LedgerError::ResponseTooShort(vec![result.len() as u8]), - )); - } - let result = result.data().unwrap(); - if result.is_empty() { - if self.get_opened_app().await? == "Ethereum" { - return Err(LedgerClienError::CommandError("Canceled".to_owned())); - } else { - return Err(LedgerClienError::CommandError( - "Please open Ethereum app on - Ledger" - .to_owned(), - )); - } - } - let v: u64 = result[0].into(); - let r = &result[1..33]; - let s = &result[33..65]; - - let sig = Signature { - r: U256::from_big_endian(r), - s: U256::from_big_endian(s), - v, - }; - Ok(sig) - } -} - -/// These tests will fail if you don't have a ledger connected -/// They should probably be ignored in CI and ran manually -mod tests { - #![allow(unused_imports)] - use super::*; - // So I was initially trying to run this in it's own separate test as a unit - // test but i think it was being run in it's own thread because it was - // failing Which makes sense because a lock is obtained on the device when - // being interacted with This means that we have to be careful to run the - // ledger logic asynchronously - #[tokio::test] - async fn ledger_tests() { - // test connecting: this doesn't require that the user has the ethereum ledger - // application open - let ledger = LedgerClient::new_connection(DerivationType::LedgerLive(0)) - .await - .unwrap(); - println!("Connected to ledger"); - - // after this all other commands require that the ethereum ledger application is - // User enters pin and then opens the ethereum ledger application - - // test getting address - let address = ledger.get_address().await.unwrap(); - println!("Address: {}", address); - - // test getting version - let version = ledger.version().await.unwrap(); - println!("Got Ethereum ledger application version {}", version); - - let tx = TransactionRequest::default(); - - // This currently correctly prompts the user to review this transaction - let sig = ledger.sign_tx(&tx).await.unwrap(); - println!("Got signature: {:?}", sig); - // test signing a transaction - ledger.ledger.close(); - } -} diff --git a/crates/clients/src/ledger/types.rs b/crates/clients/src/ledger/types.rs deleted file mode 100644 index 076bd0641..000000000 --- a/crates/clients/src/ledger/types.rs +++ /dev/null @@ -1,65 +0,0 @@ -use std::fmt; -// All available instructions for ledger ethereum app -#[repr(u8)] -pub enum Instruction { - GetPublicKey = 0x02, - Sign = 0x04, // sign transaction - GetAppConfiguration = 0x06, - SignPersonalMessage = 0x08, - ProvideErc20TokenInformation = 0x0A, - SignEip712Message = 0x0C, - GetEth2PublicKey = 0x0E, - SetEth2WithdrawalIndex = 0x10, - SetExternalPlugin = 0x12, - ProvideNftInformation = 0x14, - SetPlugin = 0x16, - PerformPrivacyOperation = 0x18, - Eip712StructDef = 0x1A, - Eip712StructImpl = 0x1C, - Eip712Filtering = 0x1E, - EnsGetChallenge = 0x20, - EnsProvideInfo = 0x22, -} - -// P1 and P2 -pub const P1_FIRST: u8 = 0x00; -pub const P1_NON_CONFIRM: u8 = 0x00; -pub const P1_MORE: u8 = 0x80; -pub const P2_NO_CHAINCODE: u8 = 0x00; - -#[derive(Debug)] -pub enum LedgerClienError { - LedgerError(coins_ledger::LedgerError), - CommandError(String), - // ... other error variants ... -} -impl From for LedgerClienError { - fn from(err: coins_ledger::LedgerError) -> LedgerClienError { - LedgerClienError::LedgerError(err) - } -} - -#[derive(Clone, Debug)] -/// Ledger wallet type -pub enum DerivationType { - /// Ledger Live-generated HD path - LedgerLive(usize), - /// Legacy generated HD Path - Legacy(usize), - /// Any other path - Other(String), -} - -impl fmt::Display for DerivationType { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}", - match self { - DerivationType::Legacy(index) => format!("m/44'/60'/0'/{index}"), /* i believe this is most common */ - DerivationType::LedgerLive(index) => format!("m/44'/60'/{index}'/0/0"), - DerivationType::Other(inner) => inner.to_owned(), - } - ) - } -} diff --git a/crates/clients/src/lib.rs b/crates/clients/src/lib.rs deleted file mode 100644 index bb4f2175b..000000000 --- a/crates/clients/src/lib.rs +++ /dev/null @@ -1,9 +0,0 @@ -//! Exposes all interfaces with external systems, including arbiter simulations -//! and connections to live networks. - -pub mod client; -pub mod dev; -pub mod ledger; -pub mod protocol; - -use ethers::prelude::*; diff --git a/crates/clients/src/protocol/mod.rs b/crates/clients/src/protocol/mod.rs deleted file mode 100644 index bfef5f33a..000000000 --- a/crates/clients/src/protocol/mod.rs +++ /dev/null @@ -1,401 +0,0 @@ -//! Dynamic Function Market Making Protocol Client -//! -//! Middleware layer for agents to communicate with the DFMM protocol. -pub mod pool; - -use std::{sync::Arc, time::Duration}; - -use anyhow::Result; -use arbiter_core::errors::ArbiterCoreError; -use bindings::{ - dfmm::{Pool as PoolStruct, DFMM}, - g3m::G3M, - g3m_solver::{G3MSolver, G3Mparams}, - log_normal::LogNormal, - log_normal_solver::{LogNormalParams, LogNormalSolver}, - shared_types::InitParams, -}; -use ethers::utils::parse_ether; -use pool::{Pool, PoolKind}; - -use super::*; - -#[derive(Debug, Clone)] -pub struct G3mF64 { - pub wx: f64, - pub swap_fee: f64, - pub controller: Address, -} - -#[derive(Debug, Clone)] -pub struct LogNormalF64 { - pub sigma: f64, - pub strike: f64, - pub tau: f64, - pub swap_fee: f64, - pub controller: Address, -} - -#[derive(Debug, Clone)] -pub enum PoolInitParamsF64 { - G3M(G3mF64), - LogNormal(LogNormalF64), -} - -#[derive(Debug, Clone)] -pub enum PoolParams { - G3M(G3Mparams), - LogNormal(LogNormalParams), -} - -#[derive(Debug)] -pub struct ProtocolClient { - pub client: Arc, - pub protocol: DFMM, - pub ln_solver: LogNormalSolver, - pub ln_strategy: LogNormal, - pub g_solver: G3MSolver, - pub g_strategy: G3M, -} - -impl Clone for ProtocolClient { - fn clone(&self) -> Self { - Self { - client: self.client.clone(), - protocol: self.protocol.clone(), - ln_solver: self.ln_solver.clone(), - ln_strategy: self.ln_strategy.clone(), - g_solver: self.g_solver.clone(), - g_strategy: self.g_strategy.clone(), - } - } -} - -impl ProtocolClient { - #[tracing::instrument(level = "trace", ret)] - pub async fn new( - client: Arc, - token_x: Address, - token_y: Address, - swap_fee_percent_wad: f64, - ) -> Result { - let protocol = DFMM::deploy(client.clone(), ())?.send().await?; - let ln_strategy = LogNormal::deploy(client.clone(), protocol.address())? - .send() - .await?; - - let g_strategy = G3M::deploy(client.clone(), protocol.address())? - .send() - .await?; - - let ln_solver = LogNormalSolver::deploy(client.clone(), ln_strategy.address())? - .send() - .await?; - - let g_solver = G3MSolver::deploy(client.clone(), g_strategy.address())? - .send() - .await?; - - Ok(Self { - client, - protocol, - ln_solver, - ln_strategy, - g_solver, - g_strategy, - }) - } - - #[allow(clippy::too_many_arguments)] - pub fn from_deployed( - client: Arc, - protocol_addr: Address, - ln_strategy_addr: Address, - ln_solver_addr: Address, - g_strategy_addr: Address, - g_solver_addr: Address, - ) -> Result { - Ok(Self { - client: client.clone(), - protocol: DFMM::new(protocol_addr, client.clone()), - ln_strategy: LogNormal::new(ln_strategy_addr, client.clone()), - ln_solver: LogNormalSolver::new(ln_solver_addr, client.clone()), - g_strategy: G3M::new(g_strategy_addr, client.clone()), - g_solver: G3MSolver::new(g_solver_addr, client.clone()), - }) - } - - pub fn connect(&self, client: Arc) -> Result { - Ok(Self { - client: client.clone(), - protocol: self.protocol.connect(client.clone()).into(), - ln_strategy: self.ln_strategy.connect(client.clone()).into(), - ln_solver: self.ln_solver.connect(client.clone()).into(), - g_strategy: self.g_strategy.connect(client.clone()).into(), - g_solver: self.g_solver.connect(client.clone()).into(), - }) - } - - pub async fn get_pool(&self, pool_id: U256) -> Result { - let pool_data: PoolStruct = self.protocol.get_pool(pool_id).call().await.unwrap(); - - let token_x = pool_data.token_x; - let token_y = pool_data.token_y; - let strategy = pool_data.strategy; - let ln_address = self.ln_strategy.address(); - let g_address = self.g_strategy.address(); - - let kind = match strategy { - _ if strategy == ln_address => PoolKind::LogNormal, - _ if strategy == g_address => PoolKind::G3M, - _ => return Err(ArbiterCoreError::MissingDataError), - }; - - let pool = Pool { - kind, - token_x, - token_y, - pool_id, - }; - - Ok(pool) - } - // todo(matt): fix this - // pub async fn update_controller(&self, pool_id: U256, new_controller: Address) - // -> Result<()> { self.protocol - // .update_controller(pool_id, new_controller) - // .send() - // .await?; - // Ok(()) - // } - - #[tracing::instrument(skip(self), level = "trace", ret)] - pub async fn init_pool( - &self, - token_x: Address, - token_y: Address, - init_reserve_x_wad: U256, - init_price_wad: U256, - init_params: PoolInitParamsF64, - ) -> Result { - let pool_params = to_init_params_wad(init_params)?; - - match pool_params { - PoolParams::G3M(g3m_params) => { - let init_data = self - .g_solver - .get_initial_pool_data(init_reserve_x_wad, init_price_wad, g3m_params) - .call() - .await?; - let init_params: InitParams = InitParams { - strategy: self.g_strategy.address(), - token_x, - token_y, - data: init_data, - }; - - let tx = self.initialize_pool(init_params).await?.unwrap(); - - Ok(tx) - } - PoolParams::LogNormal(log_normal_params) => { - let init_data = self - .ln_solver - .get_initial_pool_data(init_reserve_x_wad, init_price_wad, log_normal_params) - .call() - .await?; - let init_params: InitParams = InitParams { - strategy: self.ln_strategy.address(), - token_x, - token_y, - data: init_data, - }; - - let tx = self.initialize_pool(init_params).await?.unwrap(); - - Ok(tx) - } - } - } - - pub async fn get_next_pool_id(&self) -> Result { - Ok(self.protocol.nonce().call().await?) - } - - /// Gets the data to send to the `initialize_pool` function. - pub async fn get_init_payload( - &self, - token_x: Address, - token_y: Address, - init_reserve_x_wad: U256, - init_price_wad: U256, - init_params: PoolInitParamsF64, - ) -> Result { - let pool_params = to_init_params_wad(init_params)?; - match pool_params { - PoolParams::G3M(g3m_params) => { - let init_data = self - .g_solver - .get_initial_pool_data(init_reserve_x_wad, init_price_wad, g3m_params) - .call() - .await?; - let init_params: InitParams = InitParams { - strategy: self.g_strategy.address(), - token_x, - token_y, - data: init_data, - }; - Ok(init_params) - } - PoolParams::LogNormal(log_normal_params) => { - tracing::info!("log normal solver address: {:?}", self.ln_solver.address()); - let init_data = self - .ln_solver - .get_initial_pool_data(init_reserve_x_wad, init_price_wad, log_normal_params) - .call() - .await?; - let init_params: InitParams = InitParams { - strategy: self.ln_strategy.address(), - token_x, - token_y, - data: init_data, - }; - Ok(init_params) - } - } - } - - pub async fn initialize_pool(&self, payload: InitParams) -> Result> { - let tx = self - .protocol - .init(payload) - .send() - .await? - .confirmations(0) - .interval(Duration::from_millis(100)) - .await?; - - Ok(tx) - } - - /// alex: testing out some blocking in the application - pub async fn create_position( - &self, - token_x: Address, - token_y: Address, - init_reserve_x_wad: U256, - init_price_wad: U256, - init_params: PoolInitParamsF64, - ) -> Result> { - let payload = self - .get_init_payload( - token_x, - token_y, - init_reserve_x_wad, - init_price_wad, - init_params, - ) - .await?; - - self.initialize_pool(payload).await - } - - #[tracing::instrument(skip(self), level = "trace", ret)] - pub async fn get_internal_price(&self, pool_id: U256) -> Result { - let pool = self.get_pool(pool_id).await?; - - match pool.kind { - PoolKind::G3M => Ok(self.g_solver.internal_price(pool_id).call().await.unwrap()), - PoolKind::LogNormal => Ok(self.ln_solver.internal_price(pool_id).call().await.unwrap()), - } - } - - pub async fn get_reserves_and_liquidity(&self, pool_id: U256) -> Result<(U256, U256, U256)> { - Ok(self - .protocol - .get_reserves_and_liquidity(pool_id) - .call() - .await?) - } - - #[tracing::instrument(skip(self), level = "trace", ret)] - pub async fn get_params(&self, pool_id: U256) -> Result { - let pool = self.get_pool(pool_id).await?; - - match pool.kind { - PoolKind::G3M => Ok(PoolParams::G3M( - self.g_solver.fetch_pool_params(pool_id).call().await?, - )), - PoolKind::LogNormal => Ok(PoolParams::LogNormal( - self.ln_solver.fetch_pool_params(pool_id).call().await?, - )), - } - } - - #[tracing::instrument(skip(self), level = "trace", ret)] - pub async fn set_strike_price( - &self, - pool_id: U256, - target_strike_price: f64, - next_timestamp: u64, - ) -> Result> { - let target_strike_wad = to_wad(target_strike_price); - let timestamp_wad = ethers::types::U256::from(next_timestamp); - let update_data = self - .ln_solver - .prepare_strike_update(target_strike_wad, timestamp_wad) - .call() - .await?; - let tx = self - .protocol - .update(pool_id, update_data) - .send() - .await? - .await?; - Ok(tx) - } - - pub async fn set_weight_x( - &self, - pool_id: U256, - target_wx: f64, - next_timestamp: u64, - ) -> Result> { - let target_wx_wad = to_wad(target_wx); - let timestamp_wad = U256::from(next_timestamp); - let update_data = self - .g_solver - .prepare_weight_x_update(target_wx_wad, timestamp_wad) - .call() - .await?; - let tx = self - .protocol - .update(pool_id, update_data) - .send() - .await? - .await?; - Ok(tx) - } -} - -fn to_wad(value: f64) -> U256 { - parse_ether(value).unwrap() -} - -fn to_init_params_wad(init_params: PoolInitParamsF64) -> Result { - match init_params { - PoolInitParamsF64::G3M(g3m_params) => Ok(PoolParams::G3M(G3Mparams { - w_x: to_wad(g3m_params.wx), - w_y: to_wad(1.0) - to_wad(g3m_params.wx), - swap_fee: to_wad(g3m_params.swap_fee), - controller: g3m_params.controller, - })), - PoolInitParamsF64::LogNormal(ln_params) => Ok(PoolParams::LogNormal(LogNormalParams { - sigma: to_wad(ln_params.sigma), - strike: to_wad(ln_params.strike), - tau: to_wad(ln_params.tau), - swap_fee: to_wad(ln_params.swap_fee), - controller: ln_params.controller, - })), - } -} diff --git a/crates/clients/src/protocol/pool.rs b/crates/clients/src/protocol/pool.rs deleted file mode 100644 index 9811803fb..000000000 --- a/crates/clients/src/protocol/pool.rs +++ /dev/null @@ -1,31 +0,0 @@ -use super::*; - -#[derive(Debug, Clone, Copy)] -pub enum PoolKind { - G3M, - LogNormal, -} - -#[derive(Debug, Clone, Copy)] -pub struct Pool { - pub kind: PoolKind, - pub token_x: Address, - pub token_y: Address, - pub pool_id: U256, -} - -impl Pool { - pub async fn new( - kind: PoolKind, - token_x: Address, - token_y: Address, - pool_id: U256, - ) -> Result { - Ok(Self { - kind, - token_x, - token_y, - pool_id, - }) - } -} diff --git a/crates/dfmm/Cargo.toml b/crates/dfmm/Cargo.toml deleted file mode 100644 index 7a0ea5543..000000000 --- a/crates/dfmm/Cargo.toml +++ /dev/null @@ -1,43 +0,0 @@ -[package] -name = "dfmm" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -bindings.workspace = true -clients.workspace = true - -unit-conversions = "0.1.16" - -itertools.workspace = true -rand.workspace = true - -arbiter-bindings.workspace = true -arbiter-core.workspace = true - -revm.workspace = true -ethers.workspace = true - -tokio.workspace = true -async-trait.workspace = true - -thiserror.workspace = true -anyhow.workspace = true -tracing.workspace = true -tracing-subscriber.workspace = true - -serde.workspace = true -serde_json.workspace = true -config.workspace = true - -RustQuant.workspace = true -statrs.workspace = true -linked-hash-map.workspace = true - -uuid.workspace = true -chrono.workspace = true - -# Historical Data -reikna.workspace = true diff --git a/crates/dfmm/src/agent.rs b/crates/dfmm/src/agent.rs deleted file mode 100644 index 5df676fe5..000000000 --- a/crates/dfmm/src/agent.rs +++ /dev/null @@ -1,65 +0,0 @@ -use std::{any::Any, fmt::Debug, sync::Arc}; - -use arbiter_core::{errors::ArbiterCoreError, middleware::ArbiterMiddleware}; -use linked_hash_map::LinkedHashMap; - -use super::*; - -/// Universal agent methods for interacting with the simulation environment or -/// loop.3 -#[async_trait::async_trait] -pub trait Agent: Sync + Send + Any + Debug { - /// Executed before the main simulation loop starts. - async fn init(&mut self) -> Result<()> { - Ok(()) - } - - /// Executed by each agent inside the main simulation loop. - /// Ordering is determined by placement in the simulation loop. - async fn step(&mut self) -> Result<(), ArbiterCoreError> { - Ok(()) - } - - /// Executed after the main simulation loop ends. - async fn exit(&mut self) -> Result<()> { - Ok(()) - } - - /// All agents exist as an individual EOA with client. - fn client(&self) -> Arc; - - /// Typecasting to Any so that agents can be converted to other types. - fn as_any(&self) -> &dyn Any; -} - -#[derive(Debug, Default)] -pub struct Agents(pub LinkedHashMap>); - -impl Agents { - pub fn iter_mut(&mut self) -> impl Iterator)> { - self.0.iter_mut() - } - - #[allow(clippy::new_without_default)] - pub fn new() -> Self { - Self(LinkedHashMap::new()) - } - - pub fn add(&mut self, agent: impl Agent + 'static) { - self.0.insert( - agent.client().label.as_ref().unwrap().clone(), - Box::new(agent), - ); - } -} - -#[async_trait::async_trait] -impl Agent for Agents { - fn client(&self) -> Arc { - unimplemented!() - } - - fn as_any(&self) -> &dyn Any { - self - } -} diff --git a/crates/dfmm/src/agents/base/block_admin.rs b/crates/dfmm/src/agents/base/block_admin.rs deleted file mode 100644 index 4737574b9..000000000 --- a/crates/dfmm/src/agents/base/block_admin.rs +++ /dev/null @@ -1,81 +0,0 @@ -use std::{any::Any, sync::Arc}; - -use arbiter_core::{ - environment::Environment, errors::ArbiterCoreError, middleware::ArbiterMiddleware, -}; -use ethers::providers::Middleware; -use serde::{Deserialize, Serialize}; - -use super::*; -use crate::{ - agent::Agent, - agents::AgentParameters, - settings::{parameters::Single, SimulationConfig}, -}; - -#[derive(Clone, Debug)] -pub struct BlockAdmin { - pub client: Arc, - pub timestep_size: u64, - pub block_timestamp: u64, - pub block_number: u64, -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub struct BlockAdminParameters { - pub timestep_size: u64, -} - -impl BlockAdmin { - pub async fn new( - environment: &Environment, - config: &SimulationConfig, - label: impl Into, - ) -> Result { - let label: String = label.into(); - let client = ArbiterMiddleware::new(environment, Some(&label))?; - if let Some(AgentParameters::BlockAdmin(parameters)) = config.agent_parameters.get(&label) { - Ok(Self { - client: client.clone(), - timestep_size: parameters.timestep_size, - block_number: client.get_block_number().await?.as_u64(), - block_timestamp: client.get_block_timestamp().await?.as_u64(), - }) - } else { - Err(anyhow::anyhow!("No parameters found for block admin")) - } - } - - pub fn update_block(&mut self) -> Result<(), ArbiterCoreError> { - self.block_number += 1; - self.block_timestamp = self.block_number * self.timestep_size; - self.client - .update_block(self.block_number, self.block_timestamp)?; - Ok(()) - } -} - -#[async_trait::async_trait] -impl Agent for BlockAdmin { - async fn init(&mut self) -> Result<()> { - trace!("Updating block"); - self.update_block()?; - trace!("Block updated"); - Ok(()) - } - - async fn step(&mut self) -> Result<(), ArbiterCoreError> { - trace!("Updating block"); - self.update_block()?; - trace!("Block updated"); - Ok(()) - } - - fn as_any(&self) -> &dyn Any { - self - } - - fn client(&self) -> Arc { - self.client.clone() - } -} diff --git a/crates/dfmm/src/agents/base/mod.rs b/crates/dfmm/src/agents/base/mod.rs deleted file mode 100644 index 322517705..000000000 --- a/crates/dfmm/src/agents/base/mod.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub mod block_admin; -pub mod price_changer; -pub mod token_admin; - -use anyhow::Result; -use tracing::{debug, trace}; - -use super::*; diff --git a/crates/dfmm/src/agents/base/price_changer.rs b/crates/dfmm/src/agents/base/price_changer.rs deleted file mode 100644 index 0afb3a52f..000000000 --- a/crates/dfmm/src/agents/base/price_changer.rs +++ /dev/null @@ -1,331 +0,0 @@ -use std::{collections::hash_map::DefaultHasher, hash::Hasher, sync::Arc}; - -use arbiter_core::errors::ArbiterCoreError; -use bindings::lex::Lex; -use ethers::utils::parse_ether; -use itertools::iproduct; -use RustQuant::{ - models::{GeometricBrownianMotion, OrnsteinUhlenbeck}, - stochastics::{StochasticProcess, Trajectories}, -}; - -use super::{agent::*, *}; - -/// The `PriceChanger` holds the data and has methods that allow it to update -/// the price of the `LiquidExchange`. -pub struct PriceChanger { - /// The client for the `PriceChanger` - pub client: Arc, - /// The path the price process takes. - pub trajectory: Trajectories, - - /// The `LiquidExchange` contract with the admin `Client`. - pub liquid_exchange: Lex, - - /// The index of the current price in the trajectory. - pub index: usize, -} - -impl Clone for PriceChanger { - fn clone(&self) -> Self { - let trajectory = Trajectories { - times: self.trajectory.times.clone(), - paths: self.trajectory.paths.clone(), - }; - Self { - client: self.client.clone(), - trajectory, - liquid_exchange: self.liquid_exchange.clone(), - index: self.index, - } - } -} - -impl std::fmt::Debug for PriceChanger { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("PriceChanger") - .field("liquid_exchange", &self.liquid_exchange) - .field("index", &self.index) - .finish() - } -} - -#[async_trait::async_trait] -impl Agent for PriceChanger { - fn as_any(&self) -> &dyn Any { - self - } - - async fn step(&mut self) -> Result<(), ArbiterCoreError> { - let current_price = self.liquid_exchange.price().call().await.unwrap(); - debug!("Updating lex price from {:?}", current_price); - self.update_price().await?; - debug!( - "Updated lex price to {:?}", - self.liquid_exchange.price().call().await.unwrap() - ); - Ok(()) - } - fn client(&self) -> Arc { - self.client.clone() - } -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct PriceChangerParameters { - /// The initial price of the asset. - pub initial_price: P, - /// The start time of the process. - pub t_0: P, - /// The end time of the process. - pub t_n: P, - /// The number of steps in the process. - pub num_steps: usize, - pub num_paths: usize, - pub seed: Option, - pub process: PriceProcess

, -} - -impl PriceChanger { - /// Create a new `PriceChanger` with the given `LiquidExchange` contract - /// bound to the admin `Client`. The `PriceChanger` will use the - /// `OrnsteinUhlenbeck` process to generate a price trajectory with the - /// constants defined in `config.rs`. - /// Ornstein-Uhlenbeck processes are useful for modeling the price of stable - /// tokens. - pub async fn new( - environment: &Environment, - config: &SimulationConfig, - label: impl Into, - token_admin: &token_admin::TokenAdmin, - ) -> Result { - let label: String = label.into(); - let client = ArbiterMiddleware::new(environment, Some(&label))?; - if let Some(AgentParameters::PriceChanger(parameters)) = config.agent_parameters.get(&label) - { - let liquid_exchange = Lex::deploy( - client.clone(), - ( - token_admin.arbx.address(), - token_admin.arby.address(), - ethers::utils::parse_ether(parameters.initial_price.0)?, - ), - )? - .send() - .await?; - - token_admin - .mint( - liquid_exchange.address(), - parse_ether(1_000_000)?, - parse_ether(1_000_000)?, - ) - .await?; - let trajectory = if let Some(_seed) = parameters.seed { - let initial_price = parameters.initial_price; - let t_0 = parameters.t_0; - let t_n = parameters.t_n; - let n_steps = parameters.num_steps; - if let Some(seed) = parameters.seed { - parameters.process.seedable_euler_maruyama( - initial_price.0, - t_0.0, - t_n.0, - n_steps, - 1, - false, - seed, - ) - } else { - parameters.process.euler_maruyama( - initial_price.0, - t_0.0, - t_n.0, - n_steps, - 1, - false, - ) - } - } else { - return Err(anyhow::anyhow!("No parameters found for price changer")); - }; - - Ok(Self { - client, - trajectory, - liquid_exchange, - index: 1, /* start after the initial price since it is already set on - * contract deployment */ - }) - } else { - Err(anyhow::anyhow!("No parameters found for price changer")) - } - } - - /// Update the price of the `LiquidExchange` contract to the next price in - /// the trajectory and increment the index. - pub async fn update_price(&mut self) -> Result<(), ArbiterCoreError> { - let price = self.trajectory.paths[0][self.index]; - trace!("Updating price of liquid_exchange to: {}", price); - self.liquid_exchange - .set_price(ethers::utils::parse_ether(price).unwrap()) - .send() - .await - .unwrap() - .await?; - self.index += 1; - Ok(()) - } -} - -impl From> for Vec> { - fn from(item: PriceChangerParameters) -> Self { - let num_paths = item.num_paths; - let initial_prices = item.initial_price.parameters(); - let t_0 = item.t_0.parameters(); - let t_n = item.t_n.parameters(); - let process: Vec> = item.process.into(); - let mut result: Vec> = vec![]; - - let mut hasher = DefaultHasher::new(); - let mut seed = match item.seed { - Some(val) => val, - None => rand::random::(), - }; - for _ in 0..num_paths { - for initial_price in initial_prices.clone() { - for t0 in t_0.clone() { - for tn in t_n.clone() { - for process in process.clone() { - result.push(PriceChangerParameters { - process, - initial_price: Single(initial_price), - t_0: Single(t0), - t_n: Single(tn), - num_steps: item.num_steps, - num_paths: 1, - seed: Some(seed), - }); - hasher.write_u64(seed); - seed = hasher.finish(); - } - } - } - } - } - - result - } -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub enum PriceProcess { - #[serde(rename = "GBM")] - Gbm(GBMParameters

), - #[serde(rename = "OU")] - Ou(OUParameters

), -} - -impl StochasticProcess for PriceProcess { - fn drift(&self, x: f64, t: f64) -> f64 { - match self { - PriceProcess::Gbm(parameters) => { - GeometricBrownianMotion::new(parameters.drift.0, parameters.volatility.0) - .drift(x, t) - } - PriceProcess::Ou(parameters) => OrnsteinUhlenbeck::new( - parameters.mean.0, - parameters.volatility.0, - parameters.theta.0, - ) - .drift(x, t), - } - } - - fn diffusion(&self, x: f64, t: f64) -> f64 { - match self { - PriceProcess::Gbm(parameters) => { - GeometricBrownianMotion::new(parameters.drift.0, parameters.volatility.0) - .diffusion(x, t) - } - PriceProcess::Ou(parameters) => OrnsteinUhlenbeck::new( - parameters.mean.0, - parameters.volatility.0, - parameters.theta.0, - ) - .diffusion(x, t), - } - } - - fn jump(&self, x: f64, t: f64) -> Option { - match self { - PriceProcess::Gbm(parameters) => { - GeometricBrownianMotion::new(parameters.drift.0, parameters.volatility.0).jump(x, t) - } - PriceProcess::Ou(parameters) => OrnsteinUhlenbeck::new( - parameters.mean.0, - parameters.volatility.0, - parameters.theta.0, - ) - .jump(x, t), - } - } -} - -impl From> for Vec> { - fn from(item: PriceProcess) -> Self { - match item { - PriceProcess::Gbm(parameters) => { - let parameters: Vec> = parameters.into(); - parameters.into_iter().map(PriceProcess::Gbm).collect() - } - PriceProcess::Ou(parameters) => { - let parameters: Vec> = parameters.into(); - parameters.into_iter().map(PriceProcess::Ou).collect() - } - } - } -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub struct GBMParameters { - pub drift: P, - pub volatility: P, -} - -impl From> for Vec> { - fn from(item: GBMParameters) -> Self { - let drift = item.drift.parameters(); - let volatility = item.volatility.parameters(); - - iproduct!(drift, volatility.clone()) - .map(|(d, v)| GBMParameters { - drift: Single(d), - volatility: Single(v), - }) - .collect() - } -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub struct OUParameters { - pub theta: P, - pub mean: P, - pub volatility: P, -} - -impl From> for Vec> { - fn from(item: OUParameters) -> Self { - let theta = item.theta.parameters(); - let mean = item.mean.parameters(); - let volatility = item.volatility.parameters(); - - iproduct!(theta, mean.clone(), volatility.clone()) - .map(|(t, m, v)| OUParameters { - theta: Single(t), - mean: Single(m), - volatility: Single(v), - }) - .collect() - } -} diff --git a/crates/dfmm/src/agents/base/token_admin.rs b/crates/dfmm/src/agents/base/token_admin.rs deleted file mode 100644 index d82aa4d80..000000000 --- a/crates/dfmm/src/agents/base/token_admin.rs +++ /dev/null @@ -1,74 +0,0 @@ -use std::sync::Arc; - -use arbiter_bindings::bindings::arbiter_token::ArbiterToken; -use ethers::types::{Address, U256}; -use portfolio::TokenData; - -use super::{agent::*, *}; - -#[derive(Clone, Debug)] -pub struct TokenAdmin { - pub client: Arc, - pub arbx: ArbiterToken, - pub arby: ArbiterToken, -} - -#[async_trait::async_trait] -impl Agent for TokenAdmin { - fn as_any(&self) -> &dyn Any { - self - } - - fn client(&self) -> Arc { - self.client.clone() - } -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct TokenAdminParameters { - pub arbx: TokenData, - pub arby: TokenData, -} - -impl TokenAdmin { - pub async fn new( - environment: &Environment, - config: &SimulationConfig, - label: impl Into, - ) -> Result { - let label: String = label.into(); - let client = ArbiterMiddleware::new(environment, Some(&label))?; - - if let Some(AgentParameters::TokenAdmin(parameters)) = config.agent_parameters.get(&label) { - let arbx = ArbiterToken::deploy( - client.clone(), - ( - parameters.arbx.name.clone(), - parameters.arbx.symbol.clone(), - parameters.arbx.decimals, - ), - )? - .send() - .await?; - let arby = ArbiterToken::deploy( - client.clone(), - ( - parameters.arby.name.clone(), - parameters.arby.symbol.clone(), - parameters.arby.decimals, - ), - )? - .send() - .await?; - Ok(Self { client, arbx, arby }) - } else { - Err(anyhow::anyhow!("No parameters found for token admin")) - } - } - - pub async fn mint(&self, to: Address, amount_x: U256, amount_y: U256) -> Result<()> { - self.arbx.mint(to, amount_x).send().await?.await?; - self.arby.mint(to, amount_y).send().await?.await?; - Ok(()) - } -} diff --git a/crates/dfmm/src/agents/mod.rs b/crates/dfmm/src/agents/mod.rs deleted file mode 100644 index b3180a084..000000000 --- a/crates/dfmm/src/agents/mod.rs +++ /dev/null @@ -1,84 +0,0 @@ -pub mod base; -pub mod portfolio_management; - -use base::{block_admin::*, token_admin::*}; -use portfolio_management::{base::parameter_manager::*, g3m::dca_g3m_liquidity_provider::*}; - -use self::portfolio_management::{ - base::parameter_manager::ParameterManagerParameters, - g3m::{ - dca_g3m_liquidity_provider::DcaG3mLiquidityProviderParameters, - dca_swapper::DcaSwapperParameters, g3m_liquidity_provider::G3mLiquidityProviderParameters, - }, - lognormal::ln_liquidity_provider::LogNormalLiquidityProviderParameters, -}; -use super::*; -use crate::agents::base::price_changer::PriceChangerParameters; - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub enum AgentParameters { - G3mLiquidityProvider(G3mLiquidityProviderParameters

), - DcaG3mLiquidityProvider(DcaG3mLiquidityProviderParameters

), - LogNormalLiquidityProvider(LogNormalLiquidityProviderParameters

), - BlockAdmin(BlockAdminParameters), - TokenAdmin(TokenAdminParameters), - PriceChanger(PriceChangerParameters

), - ParameterManager(ParameterManagerParameters

), - DcaSwapper(DcaSwapperParameters

), -} - -impl From> for Vec> { - fn from(item: AgentParameters) -> Self { - match item { - AgentParameters::LogNormalLiquidityProvider(parameters) => { - let parameters: Vec> = - parameters.into(); - parameters - .into_iter() - .map(AgentParameters::LogNormalLiquidityProvider) - .collect() - } - AgentParameters::G3mLiquidityProvider(parameters) => { - let parameters: Vec> = parameters.into(); - parameters - .into_iter() - .map(AgentParameters::G3mLiquidityProvider) - .collect() - } - AgentParameters::DcaG3mLiquidityProvider(parameters) => { - let parameters: Vec> = parameters.into(); - parameters - .into_iter() - .map(AgentParameters::DcaG3mLiquidityProvider) - .collect() - } - AgentParameters::DcaSwapper(parameters) => { - let parameters: Vec> = parameters.into(); - parameters - .into_iter() - .map(AgentParameters::DcaSwapper) - .collect() - } - AgentParameters::ParameterManager(parameters) => { - let parameters: Vec> = parameters.into(); - parameters - .into_iter() - .map(AgentParameters::ParameterManager) - .collect() - } - AgentParameters::PriceChanger(parameters) => { - let parameters: Vec> = parameters.into(); - parameters - .into_iter() - .map(AgentParameters::PriceChanger) - .collect() - } - AgentParameters::BlockAdmin(parameters) => { - vec![AgentParameters::BlockAdmin(parameters)] - } - AgentParameters::TokenAdmin(parameters) => { - vec![AgentParameters::TokenAdmin(parameters)] - } - } - } -} diff --git a/crates/dfmm/src/agents/portfolio_management/base/arbitrageur.rs b/crates/dfmm/src/agents/portfolio_management/base/arbitrageur.rs deleted file mode 100644 index 164393d8d..000000000 --- a/crates/dfmm/src/agents/portfolio_management/base/arbitrageur.rs +++ /dev/null @@ -1,132 +0,0 @@ -use std::sync::Arc; - -use arbiter_bindings::bindings::{arbiter_token::ArbiterToken, liquid_exchange::LiquidExchange}; -use clients::protocol::{pool::PoolKind, ProtocolClient}; -use ethers::{types::U256, utils::parse_ether}; - -use super::{ - agents::base::token_admin::TokenAdmin, - bindings::{arb_math::ArbMath, atomic_v2::AtomicV2}, - ArbiterMiddleware, Environment, Result, *, -}; - -#[derive(Debug, Clone)] -pub struct Arbitrageur { - pub client: Arc, - /// Connects the Arbitrageur agent to the DFMM protocol. - pub protocol_client: ProtocolClient, - /// The arbitrageur's client connection to the liquid exchange. - pub liquid_exchange: LiquidExchange, - /// Arbitrage vehicle for atomically swapping between exchanges. - pub atomic_arbitrage: AtomicV2, - /// Arbiter math to do math for math utilities - pub arb_math: ArbMath, - /// Pool arbitrageur is responsible for trading against - // todo(matt): refactor to handle n pools - pub pool_id: U256, - pub token_x: ArbiterToken, - pub token_y: ArbiterToken, -} - -impl Arbitrageur { - pub async fn new( - name: &str, - environment: &Environment, - token_admin: &TokenAdmin, - liquid_exchange_address: Address, - protocol_client: ProtocolClient, - kind: PoolKind, - pool_id: U256, - ) -> Result { - // Create a client for the arbitrageur. - let client = ArbiterMiddleware::new(environment, Some(name))?; - let protocol_client = protocol_client.connect(client.clone())?; - - // Get the exchanges and arb contract connected to the arbitrageur client. - let liquid_exchange = LiquidExchange::new(liquid_exchange_address, client.clone()); - - let solver = match kind { - PoolKind::G3M => protocol_client.g_solver.address(), - PoolKind::LogNormal => protocol_client.ln_solver.address(), - }; - - // Deploy the arbitrageur's atomic contract to atomically swap between - // exchanges. - let atomic_arbitrage = AtomicV2::deploy( - client.clone(), - ( - solver, - protocol_client.protocol.address(), - liquid_exchange.address(), - token_admin.arbx.address(), - token_admin.arby.address(), - ), - )? - .send() - .await?; - - let arb_math = ArbMath::deploy(client.clone(), ())?.send().await?; - - let token_x = ArbiterToken::new(token_admin.arbx.address(), client.clone()); - let token_y = ArbiterToken::new(token_admin.arby.address(), client.clone()); - - token_admin - .mint( - client.address(), - parse_ether(100_000_000).unwrap(), - parse_ether(100_000_000).unwrap(), - ) - .await?; - - token_x - .approve(atomic_arbitrage.address(), MAX) - .send() - .await?; - token_y - .approve(atomic_arbitrage.address(), MAX) - .send() - .await?; - - Ok(Self { - client, - protocol_client, - liquid_exchange, - atomic_arbitrage, - arb_math, - pool_id, - token_x, - token_y, - }) - } - - /// Detects if there is an arbitrage opportunity. - /// Returns the direction of the swap `XtoY` or `YtoX` if there is an - /// arbitrage opportunity. Returns `None` if there is no arbitrage - /// opportunity. - #[tracing::instrument(skip(self), level = "trace", ret)] - pub async fn detect_arbitrage(&self) -> Result { - // Update the prices the for the arbitrageur. - let liquid_exchange_price_wad = self.liquid_exchange.price().call().await?; - - let target_exchange_price_wad = self - .protocol_client - .get_internal_price(self.pool_id) - .await?; - - tracing::info!( - "lex price: {:?} dex price: {:?}", - liquid_exchange_price_wad, - target_exchange_price_wad - ); - - match liquid_exchange_price_wad { - _ if liquid_exchange_price_wad > target_exchange_price_wad => { - Ok(Swap::RaiseExchangePrice(liquid_exchange_price_wad)) - } - _ if liquid_exchange_price_wad < target_exchange_price_wad => { - Ok(Swap::LowerExchangePrice(liquid_exchange_price_wad)) - } - _ => Ok(Swap::None), - } - } -} diff --git a/crates/dfmm/src/agents/portfolio_management/base/mod.rs b/crates/dfmm/src/agents/portfolio_management/base/mod.rs deleted file mode 100644 index 6457f1076..000000000 --- a/crates/dfmm/src/agents/portfolio_management/base/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -use super::*; -pub mod arbitrageur; -pub mod parameter_manager; diff --git a/crates/dfmm/src/agents/portfolio_management/base/parameter_manager.rs b/crates/dfmm/src/agents/portfolio_management/base/parameter_manager.rs deleted file mode 100644 index c039e1a93..000000000 --- a/crates/dfmm/src/agents/portfolio_management/base/parameter_manager.rs +++ /dev/null @@ -1,338 +0,0 @@ -use std::sync::Arc; - -use arbiter_bindings::bindings::liquid_exchange::LiquidExchange; -use arbiter_core::errors::ArbiterCoreError; -use clients::protocol::{PoolParams, ProtocolClient}; -use ethers::types::Address; -use itertools::iproduct; - -use super::{agent::*, *}; - -#[derive(Debug, Clone)] -pub struct PositionData { - pub portfolio_prices: Vec<(f64, u64)>, - pub asset_prices: Vec<(f64, u64)>, - pub portfolio_rv: Vec<(f64, u64)>, - pub asset_rv: Vec<(f64, u64)>, -} - -impl PositionData { - pub fn new() -> Result { - Ok(Self { - portfolio_prices: Vec::new(), - asset_prices: Vec::new(), - portfolio_rv: Vec::new(), - asset_rv: Vec::new(), - }) - } -} - -#[derive(Debug, Clone)] -pub struct ParameterManager { - pub client: Arc, - pub lex: LiquidExchange, - pub protocol_client: ProtocolClient, - pub next_update_time: u64, - pub update_frequency: u64, - pub target_volatility: f64, - pub max_change: f64, - pub sensitivity: f64, - pub data: PositionData, - pub pool_id: U256, -} - -#[async_trait::async_trait] -impl Agent for ParameterManager { - async fn step(&mut self) -> Result<(), ArbiterCoreError> { - let time = self.client.get_block_timestamp().await?.as_u64(); - let asset_price = self.get_asset_price().await?; - let portfolio_price = self.get_portfolio_price().await.unwrap(); - if time >= self.next_update_time { - self.next_update_time = time + self.update_frequency; - self.update_position_data(portfolio_price, asset_price, time); - self.calculate_rv().unwrap(); - self.execute_smooth_rebalance().await.unwrap(); - } - Ok(()) - } - - fn client(&self) -> Arc { - self.client.clone() - } - - fn as_any(&self) -> &dyn Any { - self - } -} - -impl ParameterManager { - pub async fn new( - environment: &Environment, - config: &SimulationConfig, - protocol_client: ProtocolClient, - label: impl Into, - liquid_exchange_address: Address, - pool_id: U256, - ) -> Result { - let label: String = label.into(); - let client = ArbiterMiddleware::new(environment, Some(&label))?; - let protocol_client = protocol_client.connect(client.clone())?; - let lex = LiquidExchange::new(liquid_exchange_address, client.clone()); - - if let Some(AgentParameters::ParameterManager(params)) = config.agent_parameters.get(&label) - { - match params.specialty { - Specialty::VolatilityTargeting(parameters) => Ok(Self { - client, - lex, - protocol_client, - update_frequency: parameters.update_frequency.0 as u64, - next_update_time: parameters.update_frequency.0 as u64, - target_volatility: parameters.target_volatility.0, - sensitivity: parameters.sensitivity.0, - max_change: parameters.max_change.0, - data: PositionData::new()?, - pool_id, - }), - } - } else { - Err(anyhow::anyhow!( - "No parameters found for volatility targeting portfolio manager" - )) - } - } - - async fn get_asset_price(&self) -> Result { - let price = self.lex.price().call().await.unwrap(); - Ok(parse_ether_to_f64(price).unwrap()) - } - - async fn get_portfolio_price(&self) -> Result { - let (rx, ry, _liq) = self - .protocol_client - .get_reserves_and_liquidity(self.pool_id) - .await?; - let rx = parse_ether_to_f64(rx)?; - let ry = parse_ether_to_f64(ry)?; - Ok(rx * self.get_asset_price().await? + ry) - } - - fn update_position_data(&mut self, portfolio_price: f64, asset_price: f64, timestamp: u64) { - if self.data.portfolio_prices.is_empty() { - self.data.portfolio_prices.push((portfolio_price, 0)); - self.data.asset_prices.push((asset_price, 0)); - } - self.data.asset_prices.push((asset_price, timestamp)); - self.data - .portfolio_prices - .push((portfolio_price, timestamp)); - } - - async fn execute_smooth_rebalance(&mut self) -> Result<()> { - if self.data.portfolio_rv.len() < 2 { - return Ok(()); - } - let portfolio_rv = self.data.portfolio_rv.last().unwrap().0; - let pool_params = self.protocol_client.get_params(self.pool_id).await?; - let vol_diff = (portfolio_rv - self.target_volatility).abs(); - match pool_params { - PoolParams::G3M(g3m_params) => { - let wx = parse_ether_to_f64(g3m_params.w_x)?; - let mut new_wx; - if portfolio_rv < self.target_volatility { - new_wx = wx + 0.0025; - if new_wx >= 0.99 { - new_wx = 0.99; - } - self.protocol_client - .set_weight_x(self.pool_id, new_wx, self.next_update_time) - .await?; - } else { - new_wx = wx - 0.0025; - if new_wx <= 0.01 { - new_wx = 0.01; - } - self.protocol_client - .set_weight_x(self.pool_id, new_wx, self.next_update_time) - .await?; - } - Ok(()) - } - PoolParams::LogNormal(log_normal_params) => { - let current_strike = log_normal_params.strike; - let current_strike_float = parse_ether_to_f64(current_strike)?; - tracing::info!("current_strike: {:?}", current_strike_float); - let mut new_strike = current_strike_float; - let mut scaling_factor = vol_diff * self.sensitivity / self.target_volatility; - if scaling_factor > self.max_change { - scaling_factor = self.max_change; - } - if portfolio_rv > self.target_volatility { - new_strike -= scaling_factor; - } else { - new_strike += scaling_factor; - } - tracing::info!("new_strike: {:?}", new_strike); - self.protocol_client - .set_strike_price(self.pool_id, new_strike, self.next_update_time) - .await?; - Ok(()) - } - } - } - - fn calculate_rv(&mut self) -> Result<()> { - // if self.asset_prices.len() > 15 then only calculate for the last 15 elements - if self.data.asset_prices.len() > 15 { - let asset_rv = compute_realized_volatility( - self.data - .asset_prices - .iter() - .skip(self.data.asset_prices.len() - 15) - .map(|(price, _)| *price) - .collect::>(), - ); - self.data.asset_rv.push((asset_rv, self.next_update_time)); - } - if self.data.portfolio_prices.len() > 15 { - let portfolio_rv = compute_realized_volatility( - self.data - .portfolio_prices - .iter() - .skip(self.data.portfolio_prices.len() - 15) - .map(|(price, _)| *price) - .collect::>(), - ); - - self.data - .portfolio_rv - .push((portfolio_rv, self.next_update_time)); - } - - Ok(()) - } -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct ParameterManagerParameters { - pub specialty: Specialty

, -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub enum Specialty { - VolatilityTargeting(VolatilityTargetingParameters

), -} - -impl From> for Vec> { - fn from(item: ParameterManagerParameters) -> Self { - let specialties: Vec> = item.specialty.into(); - iproduct!(specialties) - .map(|specialty| ParameterManagerParameters { specialty }) - .collect() - } -} - -impl From> for Vec> { - fn from(item: Specialty) -> Self { - match item { - Specialty::VolatilityTargeting(parameters) => { - let parameters: Vec> = parameters.into(); - parameters - .into_iter() - .map(Specialty::VolatilityTargeting) - .collect() - } - } - } -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub struct VolatilityTargetingParameters { - pub target_volatility: P, - pub update_frequency: P, - pub sensitivity: P, - pub max_change: P, -} - -impl From> for Vec> { - fn from(item: VolatilityTargetingParameters) -> Self { - iproduct!( - item.target_volatility.parameters(), - item.update_frequency.parameters(), - item.sensitivity.parameters(), - item.max_change.parameters() - ) - .map(|(tv, uf, s, mc)| VolatilityTargetingParameters { - target_volatility: Single(tv), - update_frequency: Single(uf), - sensitivity: Single(s), - max_change: Single(mc), - }) - .collect() - } -} - -/// Math functions for portfolio optimization and management. -/// Compute the returns of a series of values. -/// Which is defined as the ratio of the current value to the previous value -/// minus 1. -pub fn compute_returns(values: impl IntoIterator) -> Vec { - let values = values.into_iter().collect::>(); - let mut returns = Vec::new(); - for i in 1..values.len() { - returns.push(values[i] / values[i - 1] - 1.0); - } - returns -} - -pub fn compute_log_returns(values: impl IntoIterator) -> Vec { - let mut previous_value = 0.0_f64; - let mut returns = Vec::new(); - for value in values { - if previous_value != 0.0 { - returns.push((value / previous_value).ln()); - } - previous_value = value; - } - returns -} - -pub fn compute_simple_returns(values: impl IntoIterator) -> Vec { - let mut previous_value = 0.0_f64; - let mut returns = Vec::new(); - for value in values { - if previous_value != 0.0 { - returns.push(value / previous_value - 1.0); - } - previous_value = value; - } - returns -} - -pub fn compute_net_returns(values: impl IntoIterator) -> f64 { - let values = values.into_iter().collect::>(); - let net_return = values.last().unwrap_or(&0.0) / values.first().unwrap_or(&1.0) - 1.0; - net_return -} - -pub fn compute_variance(values: impl IntoIterator) -> f64 { - let values = values.into_iter().collect::>(); - let mean = values.iter().sum::() / values.len() as f64; - let variance = values - .iter() - .map(|&return_| (return_ - mean).powi(2)) - .sum::() - / values.len() as f64; - variance -} - -pub fn compute_std_deviation(values: impl IntoIterator) -> f64 { - let variance = compute_variance(values); - variance.sqrt() -} - -pub fn compute_realized_volatility(values: impl IntoIterator) -> f64 { - let returns = compute_log_returns(values); - let len = returns.len() + 1; - compute_std_deviation(returns) / (len as f64 / 365.0) -} diff --git a/crates/dfmm/src/agents/portfolio_management/g3m/dca_g3m_liquidity_provider.rs b/crates/dfmm/src/agents/portfolio_management/g3m/dca_g3m_liquidity_provider.rs deleted file mode 100644 index 8b96e2cdc..000000000 --- a/crates/dfmm/src/agents/portfolio_management/g3m/dca_g3m_liquidity_provider.rs +++ /dev/null @@ -1,131 +0,0 @@ -use std::sync::Arc; - -use arbiter_bindings::bindings::arbiter_token::ArbiterToken; -use clients::protocol::{G3mF64, PoolInitParamsF64, ProtocolClient}; -use ethers::{types::U256, utils::parse_ether}; - -use super::{agent::*, *}; -use crate::agents::base::token_admin::TokenAdmin; - -#[derive(Debug, Clone)] -pub struct DcaG3mLiquidityProvider { - pub client: Arc, - pub protocol_client: ProtocolClient, - pub token_x: Address, - pub token_y: Address, - initial_x_amount: f64, - initial_price: f64, - end_timestamp: f64, -} - -#[async_trait::async_trait] -impl Agent for DcaG3mLiquidityProvider { - #[tracing::instrument(skip(self), level = "trace")] - async fn init(&mut self) -> Result<()> { - let init_x = parse_ether(self.initial_x_amount)?; - let init_price = parse_ether(self.initial_price)?; - - let init_params = PoolInitParamsF64::G3M(G3mF64 { - wx: 0.02, - swap_fee: 0.003, - controller: self.client.address(), - }); - - let pool_id = self.protocol_client.get_next_pool_id().await?; - - self.protocol_client - .init_pool(self.token_x, self.token_y, init_x, init_price, init_params) - .await?; - let set_weight_tx = self - .protocol_client - .set_weight_x(pool_id, 0.98, self.end_timestamp as u64) - .await?; - tracing::info!("tx: {:?}", set_weight_tx); - tracing::info!("set weight on pool: {:?}", pool_id); - - Ok(()) - } - - fn client(&self) -> Arc { - self.client.clone() - } - - fn as_any(&self) -> &dyn Any { - self - } -} - -impl DcaG3mLiquidityProvider { - pub async fn new( - environment: &Environment, - config: &SimulationConfig, - label: impl Into, - token_admin: &TokenAdmin, - protocol_client: ProtocolClient, - ) -> Result { - let label = label.into(); - let client = ArbiterMiddleware::new(environment, Some(&label))?; - let arbx = ArbiterToken::new(token_admin.arbx.address(), client.clone()); - let arby = ArbiterToken::new(token_admin.arby.address(), client.clone()); - - let protocol_client = protocol_client.connect(client.clone())?; - - token_admin - .mint( - client.address(), - parse_ether(10_000_000)?, - parse_ether(10_000_000)?, - ) - .await?; - - arbx.approve(protocol_client.protocol.address(), U256::MAX) - .send() - .await?; - arby.approve(protocol_client.protocol.address(), U256::MAX) - .send() - .await?; - - if let Some(AgentParameters::DcaG3mLiquidityProvider(params)) = - config.agent_parameters.get(&label).cloned() - { - Ok(Self { - client, - protocol_client, - token_x: arbx.address(), - token_y: arby.address(), - initial_x_amount: params.initial_x_amount.0, - initial_price: params.initial_price.0, - end_timestamp: params.end_timestamp.0, - }) - } else { - Err(anyhow::anyhow!( - "No parameters found for `LiquidityProvider`" - )) - } - } -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub struct DcaG3mLiquidityProviderParameters { - pub initial_x_amount: P, - pub initial_price: P, - pub end_timestamp: P, -} - -impl From> - for Vec> -{ - fn from(params: DcaG3mLiquidityProviderParameters) -> Self { - itertools::iproduct!( - params.initial_x_amount.parameters(), - params.initial_price.parameters(), - params.end_timestamp.parameters() - ) - .map(|(ixa, ip, et)| DcaG3mLiquidityProviderParameters { - initial_x_amount: Single(ixa), - initial_price: Single(ip), - end_timestamp: Single(et), - }) - .collect() - } -} diff --git a/crates/dfmm/src/agents/portfolio_management/g3m/dca_swapper.rs b/crates/dfmm/src/agents/portfolio_management/g3m/dca_swapper.rs deleted file mode 100644 index 1b7ef4a20..000000000 --- a/crates/dfmm/src/agents/portfolio_management/g3m/dca_swapper.rs +++ /dev/null @@ -1,194 +0,0 @@ -use std::sync::Arc; - -use arbiter_bindings::bindings::{arbiter_token::ArbiterToken, liquid_exchange::LiquidExchange}; -use arbiter_core::errors::ArbiterCoreError; -use ethers::utils::{parse_ether, parse_units, ParseUnits}; - -use super::{ - agent::*, agents::base::token_admin::TokenAdmin, bindings::portfolio_tracker::PortfolioTracker, - ArbiterMiddleware, Environment, Result, *, -}; -use crate::settings::parameters::LinspaceParameters; - -#[derive(Clone, Debug)] -pub struct DcaSwapper { - pub client: Arc, - pub liquid_exchange: LiquidExchange, - pub portfolio_tracker: PortfolioTracker, - pub input_token_address: Address, - pub output_token_address: Address, - pub swap_times: Vec, - pub amount_in: U256, - pub swap_index: usize, - pub swap_direction: bool, -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub struct DcaSwapperParameters { - pub num_swaps: P, - pub initial_balance: f64, - /// True swaps X for Y - pub swap_direction: bool, - pub end_timestamp: f64, - pub start_timestamp: f64, -} - -impl From> for Vec> { - fn from(item: DcaSwapperParameters) -> Self { - item.num_swaps - .parameters() - .into_iter() - .map(|num_swaps| DcaSwapperParameters { - num_swaps: Single(num_swaps), - initial_balance: item.initial_balance, - swap_direction: item.swap_direction, - end_timestamp: item.end_timestamp, - start_timestamp: item.start_timestamp, - }) - .collect() - } -} - -// TODO: Mint the amounts here. -impl DcaSwapper { - pub async fn new( - environment: &Environment, - config: &SimulationConfig, - label: &str, - liquid_exchange_address: Address, - token_admin: &TokenAdmin, - ) -> Result { - let client = ArbiterMiddleware::new(environment, Some(label))?; - - let liquid_exchange = LiquidExchange::new(liquid_exchange_address, client.clone()); - - if let Some(AgentParameters::DcaSwapper(params)) = - config.agent_parameters.get(label).cloned() - { - let initial_balance = parse_ether(params.initial_balance)?; - debug!("Initial balance for swapper is: {}", initial_balance); - let (input_token_address, output_token_address) = if params.swap_direction { - token_admin - .arbx - .mint(client.clone().address(), initial_balance) - .send() - .await? - .await?; - ( - liquid_exchange.arbiter_token_x().call().await?, - liquid_exchange.arbiter_token_y().call().await?, - ) - } else { - token_admin - .arby - .mint(client.clone().address(), initial_balance) - .send() - .await? - .await?; - ( - liquid_exchange.arbiter_token_y().call().await?, - liquid_exchange.arbiter_token_x().call().await?, - ) - }; - - let input_token = ArbiterToken::new(input_token_address, client.clone()); - input_token - .approve(liquid_exchange.address(), MAX) - .send() - .await? - .await?; - - let swap_times = linspace!( - params.start_timestamp, - params.end_timestamp, - params.num_swaps.0 as usize - ); - trace!( - "Swapper will be tendering token with address: {:?}", - input_token - ); - - let swap_times = swap_times - .iter() - .map(|time| parse_units(time.to_string(), "wei").unwrap()) - .map(|unit| { - if let ParseUnits::U256(amount) = unit { - amount - } else { - unreachable!() - } - }) - .collect(); - trace!("Swap times for the swapper are: {:?}", swap_times); - - let amount_in = initial_balance / params.num_swaps.0 as u128; - trace!( - "Amount in for each of the swapper's swaps is: {}", - amount_in - ); - let portfolio_tracker = PortfolioTracker::deploy(client.clone(), ())?.send().await?; - Ok(Self { - client, - liquid_exchange, - input_token_address, - output_token_address, - swap_times, - amount_in, - swap_index: 0, - portfolio_tracker, - swap_direction: params.swap_direction, - }) - } else { - Err(anyhow::anyhow!("No agent parameters found for {}", label)) - } - } -} - -#[async_trait::async_trait] -impl Agent for DcaSwapper { - async fn step(&mut self) -> Result<(), ArbiterCoreError> { - debug!("Entering swapper step"); - if self.swap_direction { - self.portfolio_tracker - .log_portfolio(self.input_token_address, self.output_token_address) - .send() - .await - .unwrap() - .await?; - } else { - self.portfolio_tracker - .log_portfolio(self.output_token_address, self.input_token_address) - .send() - .await - .unwrap() - .await?; - } - if self.swap_index >= self.swap_times.len() - 1 - && self.client.get_block_timestamp().await? >= self.swap_times[self.swap_index] - { - // Make sure we can't go past the last time - return Ok(()); - } - if self.client.get_block_timestamp().await? >= self.swap_times[self.swap_index] { - trace!("Swapper is swapping: {:?}", self.amount_in); - - self.liquid_exchange - .swap(self.input_token_address, self.amount_in) - .send() - .await - .unwrap() - .await?; - trace!("Swapper swapped and is incrementing index"); - self.swap_index += 1; - } - debug!("Exiting swapper step"); - Ok(()) - } - fn client(&self) -> Arc { - self.client.clone() - } - - fn as_any(&self) -> &dyn Any { - self - } -} diff --git a/crates/dfmm/src/agents/portfolio_management/g3m/g3m_arbitrageur.rs b/crates/dfmm/src/agents/portfolio_management/g3m/g3m_arbitrageur.rs deleted file mode 100644 index a5fb0030f..000000000 --- a/crates/dfmm/src/agents/portfolio_management/g3m/g3m_arbitrageur.rs +++ /dev/null @@ -1,260 +0,0 @@ -use std::sync::Arc; - -use arbiter_core::errors::ArbiterCoreError; -use clients::protocol::{pool::PoolKind, PoolParams, ProtocolClient}; -use ethers::{ - types::{Bytes, I256, U256}, - utils::format_ether, -}; -use tracing::info; - -use super::{ - agent::*, - agents::{base::token_admin::TokenAdmin, portfolio_management::base::arbitrageur::Arbitrageur}, - ArbiterMiddleware, Environment, Result, *, -}; - -#[derive(Debug, Clone)] -pub struct G3mArbitrageur(pub Arbitrageur); - -pub struct G3mArbInputs { - pub i_wad: I256, - pub target_price_wad: I256, - pub wx: I256, - pub wy: I256, - pub gamma: I256, - pub rx: I256, - pub ry: I256, - pub liq: I256, -} - -impl G3mArbitrageur { - pub async fn new( - environment: &Environment, - token_admin: &TokenAdmin, - liquid_exchange_address: Address, - protocol_client: ProtocolClient, - pool_id: U256, - ) -> Result { - let arbitrageur = Arbitrageur::new( - "g3m_arbitrageur", - environment, - token_admin, - liquid_exchange_address, - protocol_client, - PoolKind::G3M, - pool_id, - ) - .await?; - Ok(Self(arbitrageur)) - } - - pub async fn get_arb_inputs(&self) -> Result { - let i_wad = I256::from_raw(WAD); - let target_price_wad = I256::from_raw(self.0.liquid_exchange.price().call().await?); - let pool_params = self.0.protocol_client.get_params(self.0.pool_id).await?; - - let (wx, wy, swap_fee) = match pool_params { - PoolParams::G3M(g3m_params) => (g3m_params.w_x, g3m_params.w_y, g3m_params.swap_fee), - PoolParams::LogNormal(_) => bail!("Failed to parse G3M params, received LogNormal"), - }; - - let (wx, wy, swap_fee) = ( - I256::from_raw(wx), - I256::from_raw(wy), - I256::from_raw(swap_fee), - ); - let gamma = i_wad - swap_fee; - let (rx, ry, liq) = self - .0 - .protocol_client - .get_reserves_and_liquidity(self.0.pool_id) - .await?; - let (rx, ry, liq) = (I256::from_raw(rx), I256::from_raw(ry), I256::from_raw(liq)); - - Ok(G3mArbInputs { - i_wad, - target_price_wad, - wx, - wy, - gamma, - rx, - ry, - liq, - }) - } - - pub async fn get_dx(&self) -> Result { - let G3mArbInputs { - i_wad, - target_price_wad, - wx, - wy, - gamma, - rx, - ry: _, - liq, - } = self.get_arb_inputs().await?; - - let ratio = wx * i_wad / wy; - - let inside = ratio * i_wad / target_price_wad; - let delta_x = - (liq * self.0.arb_math.pow(inside, wy).call().await? / i_wad - rx) * (i_wad / gamma); - - Ok(delta_x) - } - - pub async fn get_dy(&self) -> Result { - let G3mArbInputs { - i_wad, - target_price_wad, - wx, - wy, - gamma, - rx: _, - ry, - liq, - } = self.get_arb_inputs().await?; - let ratio = wy * i_wad / wx; - - let inside = ratio * target_price_wad / i_wad; - let delta_y = - (liq * self.0.arb_math.pow(inside, wx).call().await? / i_wad - ry) * (i_wad / gamma); - - Ok(delta_y) - } -} - -#[async_trait::async_trait] -impl Agent for G3mArbitrageur { - #[allow(unused)] - async fn step(&mut self) -> Result<(), ArbiterCoreError> { - match self.0.detect_arbitrage().await.unwrap() { - Swap::RaiseExchangePrice(target_price) => { - info!( - "[G3M]: Signal[RAISE PRICE]: {:?}", - format_ether(target_price) - ); - let x_in = false; - let mut input = self.get_dy().await.unwrap(); - if (input < I256::from(0)) { - input = I256::from(0); - info!("Encountered negative Y input for G3m swap") - } - - let optimal_dy = self - .0 - .protocol_client - .g_solver - .compute_optimal_arb_raise_price(self.0.pool_id, target_price, input.into_raw()) - .call() - .await - .unwrap(); - - info!("optimal_dy: {:?}", optimal_dy); - - let tx = self - .0 - .atomic_arbitrage - .raise_exchange_price(self.0.pool_id, optimal_dy); - - let output = tx.send().await; - - match output { - Ok(output) => { - let internal_price = self - .0 - .protocol_client - .get_internal_price(self.0.pool_id) - .await?; - info!("Price Post Swap [LEX]: {:?}", format_ether(target_price)); - info!("Price Post Swap [G3M]: {:?}", format_ether(internal_price)); - output.await?; - } - Err(e) => { - if let ArbiterCoreError::ExecutionRevert { gas_used, output } = - e.as_middleware_error().unwrap() - { - info!("[G3M]: Swap failed"); - debug!( - "Execution revert: {:?} Gas Used: {:?}", - Bytes::from(output.clone()), - gas_used - ); - } - } - } - } - Swap::LowerExchangePrice(target_price) => { - info!( - "[G3M]: Signal[LOWER PRICE] {:?}", - format_ether(target_price) - ); - let x_in = true; - let liquid_exchange_price = self.0.liquid_exchange.price().call().await.unwrap(); - let mut input = self.get_dx().await.unwrap(); - if (input < I256::from(0)) { - info!("Encountered negative X input for G3m swap"); - input = I256::from(0); - } - let optimal_dx = self - .0 - .protocol_client - .g_solver - .compute_optimal_arb_lower_price(self.0.pool_id, target_price, input.into_raw()) - .call() - .await - .unwrap(); - let input = optimal_dx * liquid_exchange_price / WAD; - - let tx = self - .0 - .atomic_arbitrage - .lower_exchange_price(self.0.pool_id, input); - - let output = tx.send().await; - - match output { - Ok(output) => { - let internal_price = self - .0 - .protocol_client - .get_internal_price(self.0.pool_id) - .await?; - info!("Price Post Swap [LEX]: {:?}", format_ether(target_price)); - info!("Price Post Swap [G3M]: {:?}", format_ether(internal_price)); - output.await?; - } - Err(e) => { - if let ArbiterCoreError::ExecutionRevert { gas_used, output } = - e.as_middleware_error().unwrap() - { - info!("[G3M]: Swap failed"); - debug!( - "Execution revert: {:?} Gas Used: {:?}", - Bytes::from(output.clone()), - gas_used - ); - } - } - } - trace!("Sent arbitrage."); - - debug!("[G3M]: === End Loop ==="); - } - _ => { - trace!("No arbitrage opportunity"); - } - } - Ok(()) - } - - fn client(&self) -> Arc { - self.0.client.clone() - } - - fn as_any(&self) -> &dyn Any { - self - } -} diff --git a/crates/dfmm/src/agents/portfolio_management/g3m/g3m_liquidity_provider.rs b/crates/dfmm/src/agents/portfolio_management/g3m/g3m_liquidity_provider.rs deleted file mode 100644 index 744b5c2fe..000000000 --- a/crates/dfmm/src/agents/portfolio_management/g3m/g3m_liquidity_provider.rs +++ /dev/null @@ -1,126 +0,0 @@ -use std::sync::Arc; - -use arbiter_bindings::bindings::arbiter_token::ArbiterToken; -use clients::protocol::{G3mF64, PoolInitParamsF64, ProtocolClient}; -use ethers::{types::U256, utils::parse_ether}; - -use super::{agent::*, *}; -use crate::agents::base::token_admin::TokenAdmin; - -#[derive(Debug, Clone)] -pub struct G3mLiquidityProvider { - pub client: Arc, - pub protocol_client: ProtocolClient, - pub controller: Address, - pub token_x: Address, - pub token_y: Address, - initial_x_amount: f64, - initial_price: f64, - initial_wx: f64, -} - -#[async_trait::async_trait] -impl Agent for G3mLiquidityProvider { - #[tracing::instrument(skip(self), level = "trace")] - async fn init(&mut self) -> Result<()> { - let init_x = parse_ether(self.initial_x_amount)?; - let init_price = parse_ether(self.initial_price)?; - - let init_params = PoolInitParamsF64::G3M(G3mF64 { - wx: self.initial_wx, - swap_fee: 0.003, - controller: self.controller, - }); - - self.protocol_client - .init_pool(self.token_x, self.token_y, init_x, init_price, init_params) - .await?; - - Ok(()) - } - - fn client(&self) -> Arc { - self.client.clone() - } - - fn as_any(&self) -> &dyn Any { - self - } -} - -impl G3mLiquidityProvider { - pub async fn new( - environment: &Environment, - config: &SimulationConfig, - label: impl Into, - token_admin: &TokenAdmin, - protocol_client: ProtocolClient, - controller: Address, - ) -> Result { - let label = label.into(); - let client = ArbiterMiddleware::new(environment, Some(&label))?; - let arbx = ArbiterToken::new(token_admin.arbx.address(), client.clone()); - let arby = ArbiterToken::new(token_admin.arby.address(), client.clone()); - - let protocol_client = protocol_client.connect(client.clone())?; - - token_admin - .mint( - client.address(), - parse_ether(10_000_000)?, - parse_ether(10_000_000)?, - ) - .await?; - - arbx.approve(protocol_client.protocol.address(), U256::MAX) - .send() - .await?; - arby.approve(protocol_client.protocol.address(), U256::MAX) - .send() - .await?; - - if let Some(AgentParameters::G3mLiquidityProvider(params)) = - config.agent_parameters.get(&label).cloned() - { - Ok(Self { - client, - protocol_client, - controller, - token_x: arbx.address(), - token_y: arby.address(), - initial_x_amount: params.initial_x_amount.0, - initial_price: params.initial_price.0, - initial_wx: params.wx.0, - }) - } else { - Err(anyhow::anyhow!( - "No parameters found for `LiquidityProvider`" - )) - } - } -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub struct G3mLiquidityProviderParameters { - pub initial_x_amount: P, - pub initial_price: P, - pub wx: P, -} - -impl From> - for Vec> -{ - fn from(params: G3mLiquidityProviderParameters) -> Self { - itertools::iproduct!( - params.initial_x_amount.parameters(), - params.initial_price.parameters(), - params.wx.parameters() - ) - .map(|(ixa, ip, w)| G3mLiquidityProviderParameters { - initial_x_amount: Single(ixa), - initial_price: Single(ip), - wx: Single(w), - }) - .collect() - } -} diff --git a/crates/dfmm/src/agents/portfolio_management/g3m/mod.rs b/crates/dfmm/src/agents/portfolio_management/g3m/mod.rs deleted file mode 100644 index 878150118..000000000 --- a/crates/dfmm/src/agents/portfolio_management/g3m/mod.rs +++ /dev/null @@ -1,84 +0,0 @@ -use clients::protocol::ProtocolClient; -use ethers::abi::Address; - -use self::{ - dca_swapper::DcaSwapper, g3m_arbitrageur::G3mArbitrageur, - g3m_liquidity_provider::G3mLiquidityProvider, -}; -use super::{ParameterManager, *}; -pub mod dca_g3m_liquidity_provider; -pub mod dca_swapper; -pub mod g3m_arbitrageur; -pub mod g3m_liquidity_provider; - -pub async fn g3m_setup( - environment: &Environment, - config: &SimulationConfig, - protocol_client: ProtocolClient, - liquid_exchange_address: Address, - token_admin: &TokenAdmin, - pool_id: U256, -) -> Result<(G3mLiquidityProvider, G3mArbitrageur, ParameterManager)> { - let manager = ParameterManager::new( - environment, - config, - protocol_client.clone(), - "g3m_manager", - liquid_exchange_address, - pool_id, - ) - .await?; - let arbitrageur = G3mArbitrageur::new( - environment, - token_admin, - liquid_exchange_address, - protocol_client.clone(), - pool_id, - ) - .await?; - let lp = G3mLiquidityProvider::new( - environment, - config, - "g3m_lp", - token_admin, - protocol_client.clone(), - manager.client.address(), - ) - .await?; - Ok((lp, arbitrageur, manager)) -} - -pub async fn dca_g3m_setup( - environment: &Environment, - config: &SimulationConfig, - protocol_client: ProtocolClient, - liquid_exchange_address: Address, - token_admin: &TokenAdmin, - pool_id: U256, -) -> Result<(DcaG3mLiquidityProvider, G3mArbitrageur, DcaSwapper)> { - let arbitrageur = G3mArbitrageur::new( - environment, - token_admin, - liquid_exchange_address, - protocol_client.clone(), - pool_id, - ) - .await?; - let lp = DcaG3mLiquidityProvider::new( - environment, - config, - "g3m_lp", - token_admin, - protocol_client.clone(), - ) - .await?; - let dca_swapper = DcaSwapper::new( - environment, - config, - "dca_swapper", - liquid_exchange_address, - token_admin, - ) - .await?; - Ok((lp, arbitrageur, dca_swapper)) -} diff --git a/crates/dfmm/src/agents/portfolio_management/lognormal/ln_arbitrageur.rs b/crates/dfmm/src/agents/portfolio_management/lognormal/ln_arbitrageur.rs deleted file mode 100644 index 7fb8b4b4e..000000000 --- a/crates/dfmm/src/agents/portfolio_management/lognormal/ln_arbitrageur.rs +++ /dev/null @@ -1,279 +0,0 @@ -use std::sync::Arc; - -use arbiter_core::errors::ArbiterCoreError; -use clients::protocol::{pool::PoolKind, PoolParams, ProtocolClient}; -use ethers::{ - types::{Address, U256}, - utils::format_ether, -}; -use tracing::info; - -use self::agents::portfolio_management::base::arbitrageur::Arbitrageur; -use super::{ - agent::*, agents::base::token_admin::TokenAdmin, ArbiterMiddleware, Environment, Result, *, -}; - -#[derive(Debug, Clone)] -pub struct LnArbitrageur(pub Arbitrageur); - -pub struct ArbInputs { - pub i_wad: I256, - pub target_price_wad: I256, - pub strike: I256, - pub sigma: I256, - pub tau: I256, - pub gamma: I256, - pub rx: I256, - pub ry: I256, - pub liq: I256, -} - -impl LnArbitrageur { - pub async fn new( - environment: &Environment, - token_admin: &TokenAdmin, - liquid_exchange_address: Address, - protocol_client: ProtocolClient, - pool_id: U256, - ) -> Result { - let arbitrageur = Arbitrageur::new( - "ln_arbitrageur", - environment, - token_admin, - liquid_exchange_address, - protocol_client, - PoolKind::LogNormal, - pool_id, - ) - .await?; - Ok(Self(arbitrageur)) - } - - pub async fn get_arb_inputs(&self) -> Result { - let i_wad = I256::from_raw(WAD); - let target_price_wad = I256::from_raw(self.0.liquid_exchange.price().call().await?); - let pool_params = self.0.protocol_client.get_params(self.0.pool_id).await?; - - let (strike, sigma, tau, swap_fee) = match pool_params { - PoolParams::LogNormal(ln_params) => ( - ln_params.strike, - ln_params.sigma, - ln_params.tau, - ln_params.swap_fee, - ), - PoolParams::G3M(_) => bail!("Failed to parse LogNormal params, received G3M"), - }; - - info!("strike: {:?}", format_ether(strike)); - info!("sigma: {:?}", format_ether(sigma)); - info!("tau: {:?}", format_ether(tau)); - - let (strike, sigma, tau, swap_fee) = ( - I256::from_raw(strike), - I256::from_raw(sigma), - I256::from_raw(tau), - I256::from_raw(swap_fee), - ); - let gamma = i_wad - swap_fee; - let (rx, ry, liq) = self - .0 - .protocol_client - .get_reserves_and_liquidity(self.0.pool_id) - .await?; - info!("rx: {:?}", format_ether(rx)); - info!("ry: {:?}", format_ether(ry)); - info!("liq: {:?}", format_ether(liq)); - let (rx, ry, liq) = (I256::from_raw(rx), I256::from_raw(ry), I256::from_raw(liq)); - Ok(ArbInputs { - i_wad, - target_price_wad, - strike, - sigma, - tau, - gamma, - rx, - ry, - liq, - }) - } - - pub async fn get_dx(&self) -> Result { - let ArbInputs { - i_wad, - target_price_wad, - strike, - sigma, - tau: _, - gamma, - rx, - ry: _, - liq, - } = self.get_arb_inputs().await?; - - let log_p = self - .0 - .atomic_arbitrage - .log(target_price_wad * i_wad / strike) - .call() - .await?; - let inner_p = log_p * i_wad / sigma + (sigma / 2); - let cdf_p = self.0.atomic_arbitrage.cdf(inner_p).call().await?; - let delta = liq * (i_wad - cdf_p) / i_wad; - let dx = (delta - rx) * i_wad * i_wad - / (((gamma - i_wad) * (i_wad - cdf_p)) / (rx * i_wad / liq) + i_wad); - info!("dx: {:?}", dx / i_wad); - Ok(dx / i_wad) - } - - // todo (matt): figure out why this returns u256::max sometimes - pub async fn get_dy(&self) -> Result { - let ArbInputs { - i_wad, - target_price_wad, - strike, - sigma, - tau: _, - gamma, - rx: _, - ry, - liq, - } = self.get_arb_inputs().await?; - - let log_p = self - .0 - .atomic_arbitrage - .log(target_price_wad * i_wad / strike) - .call() - .await?; - let inner_p = log_p * i_wad / sigma - (sigma / 2); - let cdf_p = self.0.atomic_arbitrage.cdf(inner_p).call().await?; - let delta = (liq * strike) / i_wad * (cdf_p) / i_wad; - let dy = (delta - ry) * i_wad * i_wad - / (((gamma - i_wad) * cdf_p) / (ry * i_wad * i_wad / (strike * liq)) + i_wad); - info!("dy: {:?}", dy / i_wad); - - Ok(dy / i_wad) - } -} - -#[async_trait::async_trait] -impl Agent for LnArbitrageur { - #[allow(unused)] - async fn step(&mut self) -> Result<(), ArbiterCoreError> { - match self.0.detect_arbitrage().await.unwrap() { - Swap::RaiseExchangePrice(target_price) => { - info!("Signal[RAISE PRICE]: {:?}", format_ether(target_price)); - let x_in = false; - let input = self.get_dy().await.unwrap().into_raw(); - - let optimal_dy = self - .0 - .protocol_client - .ln_solver - .compute_optimal_arb_raise_price(self.0.pool_id, target_price, input) - .call() - .await - .unwrap(); - - info!("optimal_dy: {:?}", optimal_dy); - - let tx = self - .0 - .atomic_arbitrage - .raise_exchange_price(self.0.pool_id, optimal_dy); - - let output = tx.send().await; - - match output { - Ok(output) => { - let internal_price = self - .0 - .protocol_client - .get_internal_price(self.0.pool_id) - .await?; - info!("Price Post Swap[LEX]: {:?}", format_ether(target_price)); - info!( - "Price Post Swap[LOGNORM]: {:?}", - format_ether(internal_price) - ); - output.await?; - } - Err(e) => { - if let ArbiterCoreError::ExecutionRevert { gas_used, output } = - e.as_middleware_error().unwrap() - { - info!("[LOGNORM]: Swap failed"); - debug!("Execution revert: {:?} Gas Used: {:?}", output, gas_used); - } - } - } - } - Swap::LowerExchangePrice(target_price) => { - info!( - "[LogNorm]: Signal[LOWER PRICE] {:?}", - format_ether(target_price) - ); - - let x_in = true; - let liquid_exchange_price = self.0.liquid_exchange.price().call().await.unwrap(); - let input = self.get_dx().await.unwrap().into_raw(); - - let optimal_dx = self - .0 - .protocol_client - .ln_solver - .compute_optimal_arb_lower_price(self.0.pool_id, target_price, input) - .call() - .await - .unwrap(); - info!("optimal_dx: {:?}", optimal_dx); - - let optimal_dx = - optimal_dx * liquid_exchange_price / ethers::utils::parse_ether("1").unwrap(); - - let tx = self - .0 - .atomic_arbitrage - .lower_exchange_price(self.0.pool_id, optimal_dx); - - let output = tx.send().await; - - match output { - Ok(output) => { - let internal_price = self - .0 - .protocol_client - .get_internal_price(self.0.pool_id) - .await?; - info!("Price Post Swap [LEX]: {:?}", format_ether(target_price)); - info!( - "Price Post Swap [LOGNORM]: {:?}", - format_ether(internal_price) - ); - output.await?; - } - Err(e) => { - if let ArbiterCoreError::ExecutionRevert { gas_used, output } = - e.as_middleware_error().unwrap() - { - info!("[LOGNORM]: Swap failed"); - debug!("Execution revert: {:?} Gas Used: {:?}", output, gas_used); - } - } - } - } - _ => { - trace!("No arbitrage opportunity"); - } - } - Ok(()) - } - - fn client(&self) -> Arc { - self.0.client.clone() - } - - fn as_any(&self) -> &dyn Any { - self - } -} diff --git a/crates/dfmm/src/agents/portfolio_management/lognormal/ln_liquidity_provider.rs b/crates/dfmm/src/agents/portfolio_management/lognormal/ln_liquidity_provider.rs deleted file mode 100644 index 75050ca65..000000000 --- a/crates/dfmm/src/agents/portfolio_management/lognormal/ln_liquidity_provider.rs +++ /dev/null @@ -1,144 +0,0 @@ -use std::sync::Arc; - -use arbiter_bindings::bindings::arbiter_token::ArbiterToken; -use clients::protocol::{LogNormalF64, PoolInitParamsF64, ProtocolClient}; -use ethers::{types::U256, utils::parse_ether}; - -use super::{agent::*, *}; -use crate::agents::base::token_admin::TokenAdmin; - -#[derive(Debug, Clone)] -pub struct LogNormalLiquidityProvider { - pub client: Arc, - pub protocol_client: ProtocolClient, - pub controller: Address, - pub token_x: Address, - pub token_y: Address, - initial_x_amount: f64, - initial_price: f64, - initial_strike: f64, - initial_sigma: f64, - initial_tau: f64, -} - -#[async_trait::async_trait] -impl Agent for LogNormalLiquidityProvider { - #[tracing::instrument(skip(self), level = "trace")] - async fn init(&mut self) -> Result<()> { - let initial_x = parse_ether(self.initial_x_amount)?; - let initial_price = parse_ether(self.initial_price)?; - - let init_params = PoolInitParamsF64::LogNormal(LogNormalF64 { - strike: self.initial_strike, - sigma: self.initial_sigma, - tau: self.initial_tau, - swap_fee: 0.003, - controller: self.controller, - }); - - self.protocol_client - .init_pool( - self.token_x, - self.token_y, - initial_x, - initial_price, - init_params, - ) - .await?; - - Ok(()) - } - - fn client(&self) -> Arc { - self.client.clone() - } - - fn as_any(&self) -> &dyn Any { - self - } -} - -impl LogNormalLiquidityProvider { - pub async fn new( - environment: &Environment, - config: &SimulationConfig, - label: impl Into, - token_admin: &TokenAdmin, - protocol_client: ProtocolClient, - controller: Address, - ) -> Result { - let label = label.into(); - let client = ArbiterMiddleware::new(environment, Some(&label))?; - let arbx = ArbiterToken::new(token_admin.arbx.address(), client.clone()); - let arby = ArbiterToken::new(token_admin.arby.address(), client.clone()); - - let protocol_client = protocol_client.connect(client.clone())?; - - token_admin - .mint( - client.address(), - parse_ether("10_000_000")?, - parse_ether("10_000_000")?, - ) - .await?; - - arbx.approve(protocol_client.protocol.address(), U256::MAX) - .send() - .await?; - arby.approve(protocol_client.protocol.address(), U256::MAX) - .send() - .await?; - - if let Some(AgentParameters::LogNormalLiquidityProvider(params)) = - config.agent_parameters.get(&label).cloned() - { - Ok(Self { - client, - protocol_client, - controller, - token_x: arbx.address(), - token_y: arby.address(), - initial_x_amount: params.initial_x_amount.0, - initial_price: params.initial_price.0, - initial_strike: params.strike_price.0, - initial_sigma: params.sigma.0, - initial_tau: params.tau.0, - }) - } else { - anyhow::bail!("No parameters found for `LogNormalLiquidityProvider`") - } - } -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub struct LogNormalLiquidityProviderParameters { - pub initial_x_amount: P, - pub initial_price: P, - pub strike_price: P, - pub sigma: P, - pub tau: P, -} - -impl From> - for Vec> -{ - fn from(params: LogNormalLiquidityProviderParameters) -> Self { - itertools::iproduct!( - params.initial_x_amount.parameters(), - params.initial_price.parameters(), - params.strike_price.parameters(), - params.sigma.parameters(), - params.tau.parameters() - ) - .map( - |(ixa, ip, stk, sig, tau)| LogNormalLiquidityProviderParameters { - initial_x_amount: Single(ixa), - initial_price: Single(ip), - strike_price: Single(stk), - sigma: Single(sig), - tau: Single(tau), - }, - ) - .collect() - } -} diff --git a/crates/dfmm/src/agents/portfolio_management/lognormal/mod.rs b/crates/dfmm/src/agents/portfolio_management/lognormal/mod.rs deleted file mode 100644 index f74728c63..000000000 --- a/crates/dfmm/src/agents/portfolio_management/lognormal/mod.rs +++ /dev/null @@ -1,45 +0,0 @@ -use clients::protocol::ProtocolClient; -use ethers::abi::Address; - -use self::{ln_arbitrageur::LnArbitrageur, ln_liquidity_provider::LogNormalLiquidityProvider}; -use super::{ParameterManager, *}; - -pub mod ln_arbitrageur; -pub mod ln_liquidity_provider; - -pub async fn ln_setup( - environment: &Environment, - config: &SimulationConfig, - protocol_client: ProtocolClient, - liquid_exchange_address: Address, - token_admin: &TokenAdmin, - pool_id: U256, -) -> Result<(LogNormalLiquidityProvider, LnArbitrageur, ParameterManager)> { - let manager = ParameterManager::new( - environment, - config, - protocol_client.clone(), - "ln_manager", - liquid_exchange_address, - pool_id, - ) - .await?; - let arbitrageur = LnArbitrageur::new( - environment, - token_admin, - liquid_exchange_address, - protocol_client.clone(), - pool_id, - ) - .await?; - let lp = LogNormalLiquidityProvider::new( - environment, - config, - "ln_lp", - token_admin, - protocol_client.clone(), - manager.client.address(), - ) - .await?; - Ok((lp, arbitrageur, manager)) -} diff --git a/crates/dfmm/src/agents/portfolio_management/mod.rs b/crates/dfmm/src/agents/portfolio_management/mod.rs deleted file mode 100644 index f7f33c3cc..000000000 --- a/crates/dfmm/src/agents/portfolio_management/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -use super::*; -pub mod base; -pub mod g3m; -pub mod lognormal; -use bindings; diff --git a/crates/dfmm/src/configuration.rs b/crates/dfmm/src/configuration.rs deleted file mode 100644 index e4113b83c..000000000 --- a/crates/dfmm/src/configuration.rs +++ /dev/null @@ -1,40 +0,0 @@ -use std::collections::BTreeMap; - -use serde::{Deserialize, Serialize}; - -// todo: remove this dep -use crate::{ - agents::AgentParameters, - settings::{parameters::Multiple, SimulationConfig}, -}; - -pub type AgentConfigurations

= BTreeMap>; - -#[derive(Debug, Default, Clone, Serialize, Deserialize)] -pub struct ConfigBuilder { - pub config: SimulationConfig, -} - -impl ConfigBuilder { - pub fn new() -> Self { - Self { - config: SimulationConfig::default(), - } - } - - /// Adds all configuration parameters from a Configurable type. - pub fn add_configurable(&mut self, configurable: &dyn Configurable) { - self.config - .agent_parameters - .extend(configurable.configure()); - } - - pub fn get(&self) -> SimulationConfig { - self.config.clone() - } -} - -/// Implement this trait to add a Configurable type to the config builder. -pub trait Configurable { - fn configure(&self) -> BTreeMap>; -} diff --git a/crates/dfmm/src/engine.rs b/crates/dfmm/src/engine.rs deleted file mode 100644 index 321a62ec8..000000000 --- a/crates/dfmm/src/engine.rs +++ /dev/null @@ -1,388 +0,0 @@ -use std::sync::Arc; - -use arbiter_core::{environment::Environment, errors::ArbiterCoreError}; -use ethers::types::{Address, Bytes}; -use revm::{ - db::{CacheDB, DbAccount, EmptyDB}, - primitives::{AccountInfo, HashMap as Map, U256}, -}; -use serde::{Deserialize, Serialize}; -use tokio::{runtime::Builder, sync::Semaphore}; - -use super::*; -use crate::{ - agent::Agents, - configuration::{ConfigBuilder, Configurable}, - scenarios::Scenario, - settings::{ - parameters::{Multiple, Single}, - SimulationConfig, - }, -}; - -/// A live arbiter environment with agents, a config, and amount of steps to -/// run. -#[derive(Debug)] -pub struct ArbiterInstance { - pub environment: Environment, - pub config: SimulationConfig, - pub agents: Agents, - pub steps: usize, -} - -impl Default for ArbiterInstance { - fn default() -> Self { - Self { - environment: Environment::builder().build(), - config: SimulationConfig::default(), - agents: Agents::default(), - steps: 0, - } - } -} - -impl ArbiterInstance { - pub fn new( - environment: Environment, - config: SimulationConfig, - agents: Agents, - steps: usize, - ) -> Self { - Self { - environment, - config, - agents, - steps, - } - } - - pub async fn init(&mut self) -> Result<()> { - for (_, agent) in self.agents.0.iter_mut() { - agent.init().await?; - } - - Ok(()) - } - - pub async fn step(&mut self) -> Result<(), ArbiterCoreError> { - for (_, agent) in self.agents.0.iter_mut() { - agent.step().await?; - } - - Ok(()) - } - - pub async fn exit(&mut self) -> Result<()> { - for (_, agent) in self.agents.0.iter_mut() { - agent.exit().await?; - } - - Ok(()) - } - - /// Consumes this instance, stopping the environment and returning the - /// snapshot of its db. - pub fn stop(self) -> Result<()> { - self.environment.stop()?; - Ok(()) - } - - pub fn snapshot(db: &CacheDB) -> SnapshotDB { - SnapshotDB::new(db) - } -} - -/// A serializable snapshot of the database used in an Arbiter Instance. -#[derive(Debug, Default, Clone, Serialize, Deserialize)] -pub struct SnapshotDB { - pub accounts: Map, - pub storage: Map>, -} - -/// Converts the [`db`] returned from an Arbiter Instance into a serializable -/// [`SnapshotDB`]. -impl SnapshotDB { - pub fn new(db: &CacheDB) -> Self { - let accounts = db - .accounts - .iter() - .map(|(k, v)| (Address::from(k.into_array()), v.info.clone())) - .collect(); - - let storage = db - .accounts - .iter() - .map(|(k, v)| { - let storage = v - .storage - .iter() - .map(|(k, v)| (U256::from(*k), U256::from(*v))) - .collect(); - - (Address::from(k.into_array()), storage) - }) - .collect(); - - Self { accounts, storage } - } -} - -impl From for CacheDB { - fn from(snapshot: SnapshotDB) -> Self { - let accounts = snapshot - .accounts - .iter() - .map(|(k, v)| { - let db_account: DbAccount = v.clone().into(); - - (revm::primitives::Address::from(k.0), db_account.clone()) - }) - .collect(); - - // For contracts, loop over the accounts that have non-empty `code` and then - // load the storage from those into contracts. - // Collect the (keccak256 hash of code, code). - let contracts = snapshot - .accounts - .iter() - .filter(|(_, v)| v.code.is_some()) - .map(|(_, v)| { - let hash = revm::primitives::keccak256(v.code.clone().unwrap().bytes()); - (hash, v.code.clone().unwrap()) - }) - .collect(); - - Self { - accounts, - contracts, - ..Default::default() - } - } -} - -/// A parameterized config (i.e. multiple parameters) and an environment builder -/// that can be used to reconstruct live instances, run them, and then stop -/// them, returning a snapshot of their dbs. -/// -/// Config manager is in control of the simulation parameterization. -/// Environment builder is in control of the environment, including the db the -/// environment is started with. -#[derive(Debug, Clone)] -pub struct ArbiterInstanceManager { - pub instances: Vec, - pub config_builder: ConfigBuilder, -} - -impl Default for ArbiterInstanceManager { - fn default() -> Self { - Self { - instances: vec![], - config_builder: ConfigBuilder::new(), - } - } -} - -impl ArbiterInstanceManager { - pub fn new() -> Self { - Self::default() - } - - pub fn override_config(mut self, config: SimulationConfig) -> Self { - self.config_builder.config = config; - self - } - - pub fn add_agent_configuration(mut self, configurable: &dyn Configurable) -> Self { - self.config_builder.add_configurable(configurable); - self - } - - pub async fn build_instance( - &mut self, - config: SimulationConfig, - scenario: impl Scenario, - ) -> ArbiterInstance { - let environment = Environment::builder().with_console_logs().build(); - let (agents, steps, environment) = - scenario.setup(environment, config.clone()).await.unwrap(); - ArbiterInstance::new(environment, config.clone(), agents, steps) - } - - pub async fn build(&mut self, scenario: impl Scenario) -> Vec { - let configs: Vec> = self.config_builder.get().clone().into(); - - let mut instances = vec![]; - for config in configs { - let instance = self.build_instance(config, scenario.clone()).await; - instances.push(instance); - } - - instances - } - - pub fn stop(&mut self, instances: Vec) { - for instance in instances { - instance.stop().unwrap(); - } - } - - pub async fn run_parallel(&mut self, scenario: impl Scenario) -> Result<(), Error> { - let start_time = std::time::Instant::now(); - let result = run_parallel(self.clone(), scenario).await; - result?.join().unwrap().unwrap(); - let duration = start_time.elapsed(); - tracing::warn!("Simulation tasks finished in {:?}", duration); - Ok(()) - } -} - -impl Serialize for ArbiterInstanceManager { - fn serialize(&self, serializer: S) -> Result { - let saved_dbs: Vec<_> = self.instances.to_vec(); - let config = self.config_builder.clone(); - (saved_dbs, config).serialize(serializer) - } -} - -/// We can't deserialize the instances, but we can deserialize the -/// ArbiterInstanceManager which can build them all. -impl<'de> Deserialize<'de> for ArbiterInstanceManager { - fn deserialize>(deserializer: D) -> Result { - let (saved_dbs, config): (Vec, ConfigBuilder) = - Deserialize::deserialize(deserializer)?; - - // Apply the saved dbs to the environment builders. - let mut manager = ArbiterInstanceManager::new(); - manager.config_builder = config; - manager.instances = saved_dbs.clone(); - - Ok(manager) - } -} - -type ParallelResult = std::thread::JoinHandle, Error>>; - -pub async fn run_parallel( - builder: ArbiterInstanceManager, - scenario: impl Scenario, -) -> Result { - tracing::info!("Running simulation tasks in separate thread."); - let slice = std::thread::spawn(move || { - let rt = Builder::new_multi_thread().build()?; - let max_parallel = builder.config_builder.config.max_parallel; - let errors = Arc::new(tokio::sync::Mutex::new(vec![] as Vec)); - let mut builder = builder.clone(); - let semaphore = max_parallel.map(|max| Arc::new(Semaphore::new(max))); - rt.block_on(async { - let mut instances = builder.build(scenario).await; - let mut handles = vec![]; - let i = instances.len(); - - for _ in 0..i { - let instance = instances.remove(0); - let errors_clone = errors.clone(); - let semaphore_clone = semaphore.clone(); - handles.push(tokio::spawn( - simulation_task(instance, semaphore_clone, errors_clone).await, - )); - } - - let snapshots = vec![]; - for handle in handles { - let instance = handle.await???; - instance.stop()?; - } - - let mut errors = errors.lock().await; - if errors.len() > 0 { - Err(errors.remove(0)) - } else { - Ok(snapshots) - } - }) - }); - Ok(slice) -} - -async fn simulation_task( - instance: ArbiterInstance, - semaphore: Option>, - errors: Arc>>, -) -> tokio::task::JoinHandle> { - let errors_clone = errors.clone(); - tokio::spawn(async move { - let mut instance = instance; - instance.init().await.unwrap(); - - warn!("Running simulation task."); - if let Some(semaphore) = &semaphore { - let permit = semaphore.acquire().await.unwrap(); - for i in 0..instance.steps { - let result: Result<(), ArbiterCoreError> = instance.step().await; - - match result { - Err(e) => { - match &e { - ArbiterCoreError::ExecutionRevert { output, .. } => { - tracing::error!( - "Transaction revert at step {} with revert: {:?}", - i, - Bytes::from(output.clone()) - ); - let mut errors_clone_lock = errors_clone.lock().await; - errors_clone_lock.push(e.into()); - - // Drop the permit when the simulation is done. - drop(permit); - - // Exits the simulation. - break; - } - _ => { - tracing::error!("Error at step {} with message: {:?}", i, e); - let mut errors_clone_lock = errors_clone.lock().await; - errors_clone_lock.push(e.into()); - - // Drop the permit when the simulation is done. - drop(permit); - - // Exits the simulation. - break; - } - }; - } - Ok(_) => { - // Continue running the simulation. - } - } - } - } else { - for i in 0..instance.steps { - let result: Result<(), ArbiterCoreError> = instance.step().await; - - match result { - Err(e) => { - tracing::error!( - "Simulation got an error after calling `step` on step {} {:?}", - i, - e - ); - - let mut errors_clone_lock = errors_clone.lock().await; - errors_clone_lock.push(e.into()); - - // Exits the simulation. - break; - } - Ok(_) => { - // Continue running the simulation. - } - } - } - } - - instance.exit().await.unwrap(); - - Ok(instance) - }) -} diff --git a/crates/dfmm/src/lib.rs b/crates/dfmm/src/lib.rs deleted file mode 100644 index 4211c6107..000000000 --- a/crates/dfmm/src/lib.rs +++ /dev/null @@ -1,91 +0,0 @@ -pub mod agent; -pub mod agents; -pub mod configuration; -pub mod engine; -pub mod portfolio; -pub mod rmm; -pub mod scenarios; -pub mod settings; - -use std::{any::Any, path::Path}; - -use ::config::ConfigError; -use anyhow::{bail, Error, Result}; -use arbiter_core::{environment::Environment, middleware::ArbiterMiddleware}; -use ethers::{prelude::*, utils::format_ether}; -use serde::{Deserialize, Serialize}; -use serde_json::Value; -use settings::{ - parameters::{Multiple, Single}, - Parameterized, SimulationConfig, -}; -use thiserror::Error; -use tracing::{debug, error, trace, warn}; - -pub const WAD: U256 = U256([1_000_000_000_000_000_000, 0, 0, 0]); -pub const MAX: U256 = U256::MAX; - -pub fn import(config_path: &str) -> Result, ConfigError> { - let cwd = std::env::current_dir().unwrap(); - let path = Path::new(cwd.to_str().unwrap()); - let path = path.join(config_path); - println!("Reading config from: {:?}", path); - SimulationConfig::new(config_path) -} - -pub fn run(path: &str, verbosity: Option) -> Result<()> { - let log_level = match verbosity.unwrap_or(0) { - 0 => tracing::Level::ERROR, - 1 => tracing::Level::WARN, - 2 => tracing::Level::INFO, - 3 => tracing::Level::DEBUG, - _ => tracing::Level::TRACE, - }; - - tracing_subscriber::fmt().with_max_level(log_level).init(); - - // let config: SimulationConfig = import(path)?; - let rt = tokio::runtime::Builder::new_multi_thread().build().unwrap(); - let instant = std::time::Instant::now(); - - // Run the sims, returning snapshot dbs to the manager's `instances`. - rt.block_on(async move { - let mut manager = engine::ArbiterInstanceManager::new(); - manager.config_builder.config = import(path)?; - - manager - .run_parallel(manager.config_builder.config.scenario.clone()) - .await - })?; - - let duration = instant.elapsed(); - - tracing::info!("Total duration of simulations: {:?}", duration); - - Ok(()) -} - -#[derive(Debug, Clone)] -enum Swap { - RaiseExchangePrice(U256), - LowerExchangePrice(U256), - None, -} - -#[derive(Clone, Error, Debug, Serialize, Deserialize)] -pub enum SimulationError { - #[error("Generic error: {0}")] - GenericError(String), - #[error("Error in simulation: {0}")] - Error(Value), -} - -impl From for SimulationError { - fn from(error: anyhow::Error) -> Self { - SimulationError::GenericError(error.to_string()) - } -} - -fn parse_ether_to_f64(ether: ethers::types::U256) -> Result { - Ok(format_ether(ether).parse::()?) -} diff --git a/crates/dfmm/src/portfolio/coin.rs b/crates/dfmm/src/portfolio/coin.rs deleted file mode 100644 index 3145e008c..000000000 --- a/crates/dfmm/src/portfolio/coin.rs +++ /dev/null @@ -1,76 +0,0 @@ -//! The most primitive type of a portfolio item is a coin. -//! These coins implement the Token List standard and are serializable for easy -//! storage. -//! Why is it not called token? Because it is not a token. It is a coin. A token -//! could be many things. A coin is a coin. - -use ethers::types::Address; -use serde::{Deserialize, Serialize}; - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct TokenData { - pub name: String, - pub symbol: String, - pub decimals: u8, -} - -/// Implements the Token List standard. -#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] -pub struct Coin { - pub symbol: String, - pub name: String, - pub decimals: u8, - pub tags: Vec, - pub chain_id: u64, - pub address: Address, - pub logo_uri: String, -} - -impl std::fmt::Display for Coin { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{}/{}", self.symbol, self.name) - } -} - -impl Default for Coin { - fn default() -> Self { - Self { - symbol: "Symbol".to_string(), - name: "Name".to_string(), - decimals: 18, - tags: vec![], - chain_id: 1, - address: Address::default(), - logo_uri: "".to_string(), - } - } -} - -impl Coin { - pub fn new(symbol: String, name: String, decimals: u8) -> Self { - Self { - symbol, - name, - decimals, - ..Default::default() - } - } -} - -impl super::coin_list::CoinList { - pub fn new(tokens: Vec) -> Self { - Self { - tokens, - ..Self::default() - } - } -} - -impl std::ops::Add for Coin { - type Output = super::coin_list::CoinList; - - fn add(self, rhs: Self) -> Self::Output { - let tokens = vec![self, rhs]; - super::coin_list::CoinList::new(tokens) - } -} diff --git a/crates/dfmm/src/portfolio/coin_list.rs b/crates/dfmm/src/portfolio/coin_list.rs deleted file mode 100644 index 8422836db..000000000 --- a/crates/dfmm/src/portfolio/coin_list.rs +++ /dev/null @@ -1,163 +0,0 @@ -//! A Coin List implements the Token List standard, so that these -//! coin lists can be serialized and deserialized directly from the -//! Token List JSON format. - -use std::{ - collections::BTreeMap, - ops::{Add, AddAssign, Div, Sub}, -}; - -use serde::{Deserialize, Serialize}; - -use super::coin::Coin; - -/// Custom tags for labeling the coin. -#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] -pub struct CoinTags { - pub name: String, - pub description: String, -} - -/// Version of the coin list. -#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] -pub struct CoinListVersion { - pub major: u8, - pub minor: u8, - pub patch: u8, -} - -/// Token List standard implementation for a coin list. -#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq, Hash, PartialOrd, Ord)] -pub struct CoinList { - pub name: String, - pub logo_uri: String, - pub keywords: Vec, - pub timestamp: String, - pub tags: Vec, - pub tokens: Vec, - pub token_map: BTreeMap, - pub version: CoinListVersion, -} - -impl CoinList { - /// Token list standard keeps a map of the tokens with keys in the format of - /// {chain_id}_{address}. - pub fn get_mapping_key(&self, coin: &Coin) -> String { - format!("{}_{:?}", coin.chain_id, coin.address) - } - - /// Constructs the token map from the existing coins in the list using the - /// mapping keys. - pub fn build_map(&mut self) { - let mut token_map = BTreeMap::new(); - for token in self.tokens.iter() { - let key = self.get_mapping_key(token); - token_map.insert(key, token.clone()); - } - self.token_map = token_map; - } -} - -impl Add for CoinList { - type Output = Self; - - /// Adds two coin lists together. - fn add(self, rhs: Self) -> Self::Output { - let mut tokens = self.tokens; - tokens.extend(rhs.tokens); - let mut tags = self.tags; - tags.extend(rhs.tags); - let mut keywords = self.keywords; - keywords.extend(rhs.keywords); - let mut result = Self { - name: self.name, - logo_uri: self.logo_uri, - keywords, - timestamp: self.timestamp, - tags, - tokens, - token_map: BTreeMap::new(), - version: self.version, - }; - result.build_map(); - result - } -} - -impl Sub for CoinList { - type Output = Self; - - /// Removes any tokens that exist in both lists. - fn sub(self, rhs: Self) -> Self::Output { - let mut tokens = self.tokens; - tokens.retain(|token| !rhs.tokens.contains(token)); - let mut tags = self.tags; - tags.retain(|tag| !rhs.tags.contains(tag)); - let mut keywords = self.keywords; - keywords.retain(|keyword| !rhs.keywords.contains(keyword)); - - let mut result = Self { - name: self.name, - logo_uri: self.logo_uri, - keywords, - timestamp: self.timestamp, - tags, - tokens, - token_map: BTreeMap::new(), - version: self.version, - }; - result.build_map(); - result - } -} - -impl Add for CoinList { - type Output = Self; - - fn add(mut self, rhs: Coin) -> Self::Output { - self.tokens.push(rhs); - self - } -} - -impl Sub for CoinList { - type Output = Self; - - fn sub(mut self, rhs: Coin) -> Self::Output { - self.tokens.retain(|token| *token != rhs); - self - } -} - -impl AddAssign for CoinList { - fn add_assign(&mut self, rhs: Coin) { - self.tokens.push(rhs); - } -} - -impl Div for CoinList { - type Output = Self; - - /// Cancels out any tokens that exist in both lists. - fn div(self, rhs: Self) -> Self::Output { - let mut tokens = self.tokens; - tokens.retain(|token| !rhs.tokens.contains(token)); - let mut tags = self.tags; - tags.retain(|tag| !rhs.tags.contains(tag)); - let mut keywords = self.keywords; - keywords.retain(|keyword| !rhs.keywords.contains(keyword)); - - let mut result = Self { - name: self.name, - logo_uri: self.logo_uri, - keywords, - timestamp: self.timestamp, - tags, - tokens, - token_map: BTreeMap::new(), - version: self.version, - }; - result.build_map(); - result - } -} diff --git a/crates/dfmm/src/portfolio/mod.rs b/crates/dfmm/src/portfolio/mod.rs deleted file mode 100644 index 5dc64acea..000000000 --- a/crates/dfmm/src/portfolio/mod.rs +++ /dev/null @@ -1,135 +0,0 @@ -//! Portfolio related data types and models. -pub mod coin; -pub mod coin_list; -pub mod nwd; -pub mod position; -pub mod weight; - -use std::ops::{AddAssign, SubAssign}; - -use position::{Position, Positions}; -use serde::{Deserialize, Serialize}; -use uuid::Uuid; - -use self::{nwd::NWD, position::PositionError}; - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct TokenData { - pub name: String, - pub symbol: String, - pub decimals: u8, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, PartialOrd)] -pub struct Portfolio { - pub name: String, - pub ticker: String, - pub positions: Positions, -} - -impl Portfolio { - pub fn new(name: String, ticker: String, positions: Vec) -> Self { - let positions = Positions::from(positions); - Self { - name, - ticker, - positions, - } - } - - pub fn adjust(&mut self, id: Uuid, delta: f64) -> Result<(), PositionError> { - self.positions.adjust(id, delta) - } - - pub fn aum(&self) -> f64 { - self.positions.aum() - } - - pub fn sync_prices(&mut self, prices: Vec) -> Result<(), PositionError> { - self.positions.sync_prices(prices); - - Ok(()) - } - - pub fn weights(&self) -> Vec { - self.positions.weights() - } - - pub fn nwd(&self) -> NWD { - self.positions.as_nwd() - } -} - -impl AddAssign for Portfolio { - fn add_assign(&mut self, rhs: Position) { - self.positions += rhs; - } -} - -impl AddAssign> for Portfolio { - fn add_assign(&mut self, rhs: Vec) { - self.positions += Positions::from(rhs); - } -} - -impl SubAssign for Portfolio { - fn sub_assign(&mut self, rhs: Position) { - self.positions -= rhs; - } -} - -impl From> for Portfolio { - fn from(positions: Vec) -> Self { - Portfolio { - positions: Positions::from(positions), - ..Default::default() - } - } -} - -impl From for Portfolio { - fn from(positions: Positions) -> Self { - Self { - positions, - ..Default::default() - } - } -} - -#[macro_export] -macro_rules! portfolio_weights { - ($portfolio:expr) => { - $portfolio - .positions - .0 - .iter() - .map(|position| position.weight.unwrap_or(Weight::default()).value) - .collect::>() - }; -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::portfolio::{coin::Coin, position::Position, weight::Weight}; - - #[test] - pub fn test_portfolio_weights_macro() { - let position = Position::new( - Coin::new("test".to_string(), "test".to_string(), 18), - Some(0.5), - Some(0.5), - Some(Weight::new(0.5).unwrap()), - Some(0.5), - ); - let portfolio = Portfolio::new( - "test".to_string(), - "test".to_string(), - vec![position.clone(), position.clone()], - ); - - let weight = portfolio.positions.0[0].clone().weight.unwrap_or_default(); - println!("{weight:?}"); - assert_eq!(portfolio_weights!(portfolio), vec![0.5, 0.5]); - } -} diff --git a/crates/dfmm/src/portfolio/nwd.rs b/crates/dfmm/src/portfolio/nwd.rs deleted file mode 100644 index 04fdfd717..000000000 --- a/crates/dfmm/src/portfolio/nwd.rs +++ /dev/null @@ -1,252 +0,0 @@ -//! NWD or Normalized Weight Distribution is a composition of weights that sum -//! to 1.0. This data structure is used to represent the distribution of -//! weights for a portfolio. - -use std::ops::{Add, AddAssign, Neg, Sub, SubAssign}; - -use serde::{Deserialize, Serialize}; -use uuid::Uuid; - -use super::weight::*; - -/// Normalized Weight Distribution -#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] -pub struct NWD(pub Vec); - -impl NWD { - pub fn len(&self) -> usize { - self.0.len() - } - - pub fn is_empty(&self) -> bool { - self.0.is_empty() - } - - pub fn sum(&self) -> Weight { - self.0.iter().fold(Weight::default(), |acc, x| acc + *x) - } - - pub fn validate(&self) -> Result<(), WeightError> { - let sum = self.sum(); - if sum != MAX_WEIGHT { - return Err(WeightError::InvalidSum(sum.into())); - } - Ok(()) - } - - /// Formula for: - /// - /// Changing each unadjusted weight: - /// w' = w - delta / (self.len() - 1) - /// - /// Changing the adjusted weight: - /// w' = w + delta - /// - /// Arguments: - /// id - the id of the weight to adjust - /// delta - the amount to adjust the weight by, which can be negative. - #[allow(unused_parens)] - pub fn adjust(&mut self, id: Uuid, delta: f64) -> Result<(), WeightError> { - // Validate the delta is within valid bounds. - let absolute = delta.abs(); - if !(MIN_WEIGHT.value..=MAX_WEIGHT.value).contains(&absolute) { - return Err(WeightError::InvalidWeight(absolute)); - } - - // Find the weight that is being adjusted, if it exists. - let inside = self.0.iter().find(|w| w.id == id).cloned(); - - // We proportionally adjust all elements. - let mut divisor = self.len(); - - // If the weight that is being adjusted is already in the list, - // then we reduce the divisor by 1 to exclude it from the - // other weights that are being adjusted. - if inside.is_some() { - divisor -= 1; - } - - // Adjust all weights. - for w in self.0.iter_mut() { - if w.id == id { - *w += delta; - } else { - *w -= delta / (divisor as f64); - } - } - - // If the delta is new, add it to the list - if inside.is_none() && delta != 0.0 { - self.0.push(Weight { id, value: delta }); - } - - // Validate the sum of the weights is equal to 1.0 within the f64 epsilon. - self.validate()?; - - Ok(()) - } -} - -/// Add a weight to the distribution. -/// Adding a weight will require all weights to be proportionally reduced. -impl Add for NWD { - type Output = Self; - - fn add(self, rhs: Weight) -> Self::Output { - let mut nwd = self.clone(); - nwd.adjust(rhs.id, rhs.value).unwrap(); - nwd - } -} - -impl Add for NWD { - type Output = Self; - - fn add(self, rhs: NWD) -> Self::Output { - let mut nwd = self.clone(); - for w in rhs.0 { - nwd.adjust(w.id, w.value).unwrap(); - } - nwd - } -} - -/// Subtract a weight from the distribution. -/// Subtracting a weight will require all weights to be proportionally -/// increased. -impl Sub for NWD { - type Output = Self; - - fn sub(self, rhs: Weight) -> Self::Output { - let mut nwd = self.clone(); - nwd.adjust(rhs.id, rhs.value.neg()).unwrap(); - nwd - } -} - -impl AddAssign for NWD { - fn add_assign(&mut self, rhs: Weight) { - self.adjust(rhs.id, rhs.value).unwrap(); - } -} - -impl AddAssign for NWD { - fn add_assign(&mut self, rhs: NWD) { - for w in rhs.0 { - self.adjust(w.id, w.value).unwrap(); - } - } -} - -/// todo: decide the behavior of this. If we reduce a weight all the way to 0.0, -/// should we remove it from the list? -impl SubAssign for NWD { - fn sub_assign(&mut self, rhs: Weight) { - self.adjust(rhs.id, rhs.value.neg()).unwrap(); - } -} - -impl SubAssign for NWD { - fn sub_assign(&mut self, rhs: NWD) { - for w in rhs.0 { - self.adjust(w.id, w.value.neg()).unwrap(); - } - } -} - -impl AddAssign for NWD { - fn add_assign(&mut self, rhs: f64) { - self.adjust(Uuid::new_v4(), rhs).unwrap(); - } -} - -impl SubAssign for NWD { - fn sub_assign(&mut self, rhs: f64) { - self.adjust(Uuid::new_v4(), rhs.neg()).unwrap(); - } -} - -impl From> for NWD { - fn from(weights: Vec) -> Self { - let mut nwd = NWD(vec![]); - for w in weights { - nwd += w; - } - nwd - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_nwd_add() { - let weight = Weight::new(0.5).unwrap(); - let mut nwd = NWD(vec![weight, Weight::new(0.5).unwrap()]); - nwd.adjust(weight.id, 0.25).unwrap(); - assert_eq!( - nwd, - NWD(vec![Weight::new(0.75).unwrap(), Weight::new(0.25).unwrap()]) - ); - } - - #[test] - fn test_nwd_sub() { - let weight = Weight::new(0.5).unwrap(); - let mut nwd = NWD(vec![weight, Weight::new(0.5).unwrap()]); - nwd.adjust(weight.id, 0.25.neg()).unwrap(); - assert_eq!( - nwd, - NWD(vec![Weight::new(0.25).unwrap(), Weight::new(0.75).unwrap()]) - ); - } - - #[test] - fn test_nwd_add_weight() { - let weight = Weight::new(0.5).unwrap(); - let mut nwd = NWD(vec![weight, Weight::new(0.5).unwrap()]); - nwd += weight; - assert_eq!( - nwd, - NWD(vec![Weight::new(1.0).unwrap(), Weight::new(0.0).unwrap()]) - ); - } - - #[test] - fn test_nwd_sub_weight() { - let weight = Weight::new(0.5).unwrap(); - let mut nwd = NWD(vec![weight, Weight::new(0.5).unwrap()]); - nwd -= weight; - assert_eq!( - nwd, - NWD(vec![Weight::new(0.0).unwrap(), Weight::new(1.0).unwrap()]) - ); - } - - #[test] - fn test_nwd_add_additional_weight() { - let weight = Weight::new(0.5).unwrap(); - let mut nwd = NWD(vec![weight, Weight::new(0.5).unwrap()]); - nwd += 0.2; - assert_eq!( - nwd, - NWD(vec![ - Weight::new(0.4).unwrap(), - Weight::new(0.4).unwrap(), - Weight::new(0.2).unwrap() - ]) - ); - } - - #[test] - fn test_nwd_sub_out_weight() { - let weight = Weight::new(0.5).unwrap(); - let mut nwd = NWD(vec![weight, Weight::new(0.5).unwrap()]); - nwd -= weight; - assert_eq!( - nwd, - NWD(vec![Weight::new(0.0).unwrap(), Weight::new(1.0).unwrap()]) - ); - } -} diff --git a/crates/dfmm/src/portfolio/position.rs b/crates/dfmm/src/portfolio/position.rs deleted file mode 100644 index 449b56ba0..000000000 --- a/crates/dfmm/src/portfolio/position.rs +++ /dev/null @@ -1,663 +0,0 @@ -use std::{ - fmt, - hash::{Hash, Hasher}, - ops::{Add, AddAssign, Mul, Sub, SubAssign}, -}; - -use anyhow::Result; -use chrono; -/// ! A position is an individual portion of a portfolio. -use serde::{Deserialize, Serialize}; - -use super::{ - coin::Coin, - nwd::NWD, - weight::{Weight, WeightError}, - TokenData, -}; - -/// A data type for a position in a portfolio. -/// -/// Examples: -/// -/// ``` -/// use datatypes::portfolio::{ -/// coin::Coin, -/// position::{Position, Positions}, -/// weight::Weight, -/// }; -/// -/// let mut positions = Positions::new(vec![ -/// Position::new( -/// Coin::new("Ethereum".to_string(), "ETH".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.5).unwrap()), -/// Some(0.5), -/// ), -/// Position::new( -/// Coin::new("Bitcoin".to_string(), "BTC".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.5).unwrap()), -/// Some(0.5), -/// ), -/// ]); -/// -/// // Add a position -/// positions += Position::new( -/// Coin::new("Coin".to_string(), "COIN".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.5).unwrap()), -/// Some(0.5), -/// ); -/// -/// assert_eq!(positions.len(), 3); -/// assert_eq!( -/// positions, -/// Positions(vec![ -/// Position::new( -/// Coin::new("Ethereum".to_string(), "ETH".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.25).unwrap()), -/// Some(0.5), -/// ), -/// Position::new( -/// Coin::new("Bitcoin".to_string(), "BTC".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.25).unwrap()), -/// Some(0.5), -/// ), -/// Position::new( -/// Coin::new("Coin".to_string(), "COIN".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.5).unwrap()), -/// Some(0.5), -/// ), -/// ]) -/// ); -/// -/// // Remove a position -/// positions -= positions.0[0].clone(); -/// assert_eq!(positions.len(), 3); -/// assert_eq!( -/// positions, -/// Positions(vec![ -/// Position::new( -/// Coin::new("Ethereum".to_string(), "ETH".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.0).unwrap()), -/// Some(0.5), -/// ), -/// Position::new( -/// Coin::new("Bitcoin".to_string(), "BTC".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.25 + 0.125).unwrap()), -/// Some(0.5), -/// ), -/// Position::new( -/// Coin::new("Coin".to_string(), "COIN".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.5 + 0.125).unwrap()), -/// Some(0.5), -/// ), -/// ]) -/// ); -/// -/// // Adjust an existing position -/// positions -/// .adjust(positions.0[0].weight.unwrap_or_default().id, 0.25) -/// .unwrap(); -/// -/// assert_eq!(positions.len(), 3); -/// assert_eq!( -/// positions, -/// Positions(vec![ -/// Position::new( -/// Coin::new("Ethereum".to_string(), "ETH".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.0 + 0.25).unwrap()), -/// Some(0.5), -/// ), -/// Position::new( -/// Coin::new("Bitcoin".to_string(), "BTC".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.25 + 0.125 - 0.125).unwrap()), -/// Some(0.5), -/// ), -/// Position::new( -/// Coin::new("Coin".to_string(), "COIN".to_string(), 8), -/// Some(100.0), -/// Some(1.0), -/// Some(Weight::new(0.5 + 0.125 - 0.125).unwrap()), -/// Some(0.5), -/// ), -/// ]) -/// ); -/// ``` -#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, PartialOrd)] -pub struct Position { - /// Underlying asset of the position. - pub asset: Coin, - /// Average cost basis of the position. - pub cost: Option, - /// Current actual balance of coins the position holds. - pub balance: Option, - /// Target weight for the position, not actual weight. - pub weight: Option, - /// Target volatility for the position, no the actual volatility. - pub volatility: Option, - /// Information about the position. - pub information: Option, - /// Position's layer in the portfolio. - pub layer: Option, -} - -impl std::fmt::Display for Position { - // Format each position like Position { symbol, balance, weight } - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "{{ symbol: {}, balance: {}, weight: {} }}", - self.asset.symbol, - self.balance.unwrap_or_default(), - self.weight.unwrap_or_default().value - ) - } -} - -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, PartialOrd, Default)] -pub enum PositionLayer { - #[default] - RawBalance, - Liquidity, - Staked, - Collateral, -} - -/// Carries information that can be used for synchronization, debugging, and -/// logging. -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, PartialOrd)] -pub struct Information { - /// The last time the prices were synchronized for a given position. - pub last_sync: Option>, - /// Configuration for considering the position's price stale. - pub time_to_stale: u64, -} - -impl Default for Information { - fn default() -> Self { - Self { - last_sync: None, - time_to_stale: 300u64, - } - } -} - -impl Hash for Position { - fn hash(&self, state: &mut H) { - self.asset.hash(state); - } -} - -impl Position { - pub fn new( - asset: Coin, - cost: Option, - balance: Option, - weight: Option, - volatility: Option, - ) -> Self { - Self { - asset, - cost, - balance, - weight, - volatility, - information: Some(Information::default()), - layer: None, - } - } - - pub fn layer(mut self, layer: PositionLayer) -> Self { - self.layer = Some(layer); - self - } - - pub fn is_stale(&self) -> bool { - if let Some(information) = &self.information { - if let Some(last_sync) = information.last_sync { - let tts = chrono::Duration::seconds(information.time_to_stale as i64); - return last_sync + tts < chrono::Utc::now(); - } - } - false - } - - pub fn sync_price(&mut self, price: f64) { - self.cost = Some(price); - if let Some(ref mut information) = self.information { - information.last_sync = Some(chrono::Utc::now()); - } else { - self.information = Some(Information { - last_sync: Some(chrono::Utc::now()), - ..Default::default() - }); - } - } - - pub fn market_value(&self) -> f64 { - self.cost.unwrap_or_default() * self.balance.unwrap_or_default() - } -} - -/// TokenData is used in simulations for the token admin agent. -/// todo: find a better from for this data structure. -impl From for TokenData { - fn from(position: Position) -> Self { - Self { - name: position.asset.name, - symbol: position.asset.symbol, - decimals: position.asset.decimals, - } - } -} - -/// Data structure for a group of positions, that is ruled by the underlying -/// Weight data type's arithmetic rules. -#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, PartialOrd)] -pub struct Positions(pub Vec); - -impl std::fmt::Display for Positions { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - for position in &self.0 { - writeln!( - f, - "Position {{ symbol: {}, balance: {}, weight: {} }}", - position.asset.symbol, - position.balance.unwrap_or_default(), - position.weight.unwrap_or_default().value - )?; - } - Ok(()) - } -} - -impl From> for Positions { - fn from(positions: Vec) -> Self { - Self(positions) - } -} - -impl Positions { - pub fn new(positions: Vec) -> Self { - Self(positions) - } - - /// Given a desired weight change, adjusts the weights and balances of the - /// positions in the normalized weight distribution. - pub fn adjust(&mut self, id: uuid::Uuid, delta: f64) -> Result<(), PositionError> { - // Find the position being changed. - let position = self - .0 - .iter_mut() - .find(|position| position.weight.unwrap_or_default().id == id) - .cloned() - .ok_or(PositionError::PositionDoesNotExist)?; - - // Clone the weight and replace it's value with the delta. - let mut weight = position.weight.unwrap_or_default(); - // Create an identical weight (id-wise) with the delta we want to apply in - // absolute terms. - weight.set_value(delta.abs())?; - let is_negative = delta < 0.0; - - // Get the aum before the adjustment to compute the balance adjustments later. - let aum = self.aum(); - - // Add the weight to the NWD. - let nwd = match is_negative { - false => self.as_nwd().clone() + weight, - true => self.as_nwd().clone() - weight, - }; - - // Adjust the positions to the new weights and balances. - let positions = &mut self.0; - for (i, position) in positions.iter_mut().enumerate() { - let weight = nwd.0[i]; - position.weight = Some(weight); - position.balance = Some(Self::compute_balance( - position.cost.unwrap_or_default(), - aum, - weight.value, - )); - } - - Ok(()) - } - - pub fn len(&self) -> usize { - self.0.len() - } - - pub fn is_empty(&self) -> bool { - self.0.is_empty() - } - - pub fn weights(&self) -> Vec { - self.0 - .iter() - .map(|position| position.weight.unwrap_or_default().value) - .collect::>() - } - - pub fn as_nwd(&self) -> NWD { - let weights = self - .0 - .iter() - .map(|position| position.weight.unwrap_or_default()) - .collect::>(); - NWD(weights) - } - - /// Synchronizes the costs of the positions with the given prices. - pub fn sync_prices(&mut self, prices: Vec) { - for (i, position) in self.0.iter_mut().enumerate() { - position.sync_price(prices[i]); - } - } - - /// Assets under management in value terms. - /// Sum of all the products of the position's balance and price. - #[tracing::instrument(skip(self), ret)] - pub fn aum(&self) -> f64 { - self.0 - .iter() - .map(|position| { - position - .balance - .unwrap_or_default() - .mul(position.cost.unwrap_or_default()) - }) - .sum() - } - - /// Computes the balance of a position given the weight, price, and AUM. - pub fn compute_balance(price: f64, aum: f64, weight: f64) -> f64 { - weight * aum / price - } -} - -impl Add for Positions { - type Output = Self; - - fn add(self, rhs: Position) -> Self::Output { - // First, get the current NWD and add the new weight to it. - let nwd = self.as_nwd().clone() + rhs.weight.unwrap_or_default(); - - // Adjust the positions to the new weights. - let mut positions = self.0; - for (i, position) in positions.iter_mut().enumerate() { - position.weight = Some(nwd.0[i]); - } - - // Add the position to the list. - positions.push(rhs); - - Self(positions) - } -} - -impl Sub for Positions { - type Output = Self; - - fn sub(self, rhs: Position) -> Self::Output { - // First, get the current NWD and subtract the weight from it. - let nwd = self.as_nwd().clone() - rhs.weight.unwrap_or_default(); - - // Adjust the positions to the new weights. - let mut positions = self.0; - for (i, position) in positions.iter_mut().enumerate() { - position.weight = Some(nwd.0[i]); - } - - // Return the new positions. - Self(positions) - } -} - -impl AddAssign for Positions { - fn add_assign(&mut self, rhs: Position) { - // First, get the current NWD and add the new weight to it. - let nwd = self.as_nwd().clone() + rhs.weight.unwrap_or_default(); - - // Adjust the positions to the new weights. - for (i, position) in self.0.iter_mut().enumerate() { - position.weight = Some(nwd.0[i]); - } - - // Add the position to the list. - self.0.push(rhs); - } -} - -impl SubAssign for Positions { - fn sub_assign(&mut self, rhs: Position) { - // First, get the current NWD and subtract the weight from it. - let nwd = self.as_nwd().clone() - rhs.weight.unwrap_or_default(); - - // Adjust the positions to the new weights. - for (i, position) in self.0.iter_mut().enumerate() { - position.weight = Some(nwd.0[i]); - } - } -} - -impl AddAssign for Positions { - fn add_assign(&mut self, rhs: Positions) { - // First, get the current NWD and add the new weight to it. - let nwd = self.as_nwd().clone() + rhs.as_nwd().clone(); - - // Adjust the positions to the new weights. - for (i, position) in self.0.iter_mut().enumerate() { - position.weight = Some(nwd.0[i]); - } - - // Add the positions to the list. - self.0.extend(rhs.0); - } -} - -impl From for PositionError { - fn from(err: WeightError) -> Self { - Self::WeightError(err) - } -} - -#[derive(Debug, Clone, PartialEq, PartialOrd, Hash)] -pub enum PositionError { - /// The position does not exist. - PositionDoesNotExist, - /// The position already exists. - PositionAlreadyExists, - /// Got a weight error. - WeightError(WeightError), -} - -impl fmt::Display for PositionError { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self { - PositionError::PositionDoesNotExist => { - write!(f, "The position does not exist.") - } - PositionError::PositionAlreadyExists => { - write!(f, "The position already exists.") - } - PositionError::WeightError(err) => { - write!(f, "Got a weight error: {}", err) - } - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_positions_add() { - let mut positions = Positions::new(vec![Position::new( - Coin::new("Ethereum".to_string(), "ETH".to_string(), 8), - Some(100.0), - Some(1.0), - Some(Weight::new(1.0).unwrap()), - Some(0.5), - )]); - - positions += Position::new( - Coin::new("Bitcoin".to_string(), "BTC".to_string(), 8), - Some(100.0), - Some(1.0), - Some(Weight::new(0.5).unwrap()), - Some(0.5), - ); - - assert_eq!( - positions, - Positions(vec![ - Position::new( - Coin::new("Ethereum".to_string(), "ETH".to_string(), 8), - Some(100.0), - Some(1.0), - Some(Weight::new(0.5).unwrap()), - Some(0.5), - ), - Position::new( - Coin::new("Bitcoin".to_string(), "BTC".to_string(), 8), - Some(100.0), - Some(1.0), - Some(Weight::new(0.5).unwrap()), - Some(0.5), - ), - ]) - ); - } - - #[test] - fn test_positions_sub() { - let mut positions = Positions::new(vec![ - Position::new( - Coin::new("Ethereum".to_string(), "ETH".to_string(), 8), - Some(100.0), - Some(1.0), - Some(Weight::new(0.5).unwrap()), - Some(0.5), - ), - Position::new( - Coin::new("Bitcoin".to_string(), "BTC".to_string(), 8), - Some(100.0), - Some(1.0), - Some(Weight::new(0.5).unwrap()), - Some(0.5), - ), - ]); - - positions -= positions.0[0].clone(); - - assert_eq!( - positions, - Positions(vec![ - Position::new( - Coin::new("Ethereum".to_string(), "ETH".to_string(), 8), - Some(100.0), - Some(1.0), - Some(Weight::new(0.0).unwrap()), - Some(0.5), - ), - Position::new( - Coin::new("Bitcoin".to_string(), "BTC".to_string(), 8), - Some(100.0), - Some(1.0), - Some(Weight::new(1.0).unwrap()), - Some(0.5), - ), - ]) - ); - } - - #[test] - pub fn test_adjust_position() { - let eth_price = 1.0; - let btc_price = 1.0; - - let mut positions = Positions::new(vec![ - Position::new( - Coin::new("Ethereum".to_string(), "ETH".to_string(), 8), - Some(eth_price), - Some(0.5), - Some(Weight::new(0.5).unwrap()), - None, - ), - Position::new( - Coin::new("Bitcoin".to_string(), "BTC".to_string(), 8), - Some(btc_price), - Some(0.5), - Some(Weight::new(0.5).unwrap()), - None, - ), - ]); - - let aum = positions.aum(); - let eth_market_value = positions.0[0].market_value(); - let btc_market_value = positions.0[1].market_value(); - - let eth_weight_delta = 0.25; - let btc_weight_delta = -eth_weight_delta; - - positions - .adjust( - positions.0[0].weight.unwrap_or_default().id, - eth_weight_delta, - ) - .unwrap(); - - assert_eq!( - positions, - Positions(vec![ - Position::new( - Coin::new("Ethereum".to_string(), "ETH".to_string(), 8), - Some(eth_price), - Some(0.5 + eth_weight_delta), - Some(Weight::new(0.5 + eth_weight_delta).unwrap()), - None, - ), - Position::new( - Coin::new("Bitcoin".to_string(), "BTC".to_string(), 8), - Some(btc_price), - Some(0.5 + btc_weight_delta), - Some(Weight::new(0.5 + btc_weight_delta).unwrap()), - None, - ), - ]) - ); - - assert_eq!(positions.aum(), aum); - assert_eq!( - positions.0[0].market_value(), - eth_market_value + eth_weight_delta * eth_price - ); - assert_eq!( - positions.0[1].market_value(), - btc_market_value + btc_weight_delta * btc_price - ); - } -} diff --git a/crates/dfmm/src/portfolio/weight.rs b/crates/dfmm/src/portfolio/weight.rs deleted file mode 100644 index 2b914e3e9..000000000 --- a/crates/dfmm/src/portfolio/weight.rs +++ /dev/null @@ -1,419 +0,0 @@ -//! A portfolio weight always sums to one, so operating on them should be -//! mindful of that. - -use std::{ - fmt, - hash::{Hash, Hasher}, - ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Neg, Sub, SubAssign}, -}; - -use anyhow::Result; -use serde::{Deserialize, Serialize}; -use uuid::Uuid; - -/// A f64 value with a unique id that when grouped will always be a in a group -/// that sums to 1.0. -#[derive(Default, Debug, Clone, Copy, Serialize, Deserialize)] -pub struct Weight { - pub id: Uuid, - pub value: f64, -} - -/// A macro for creating a weight. -#[macro_export] -macro_rules! weight { - ($x:expr) => { - Weight { - id: ::uuid::Uuid::nil(), - value: $x, - } - }; -} - -pub const MAX_WEIGHT: Weight = Weight { - id: Uuid::nil(), - value: 1.0, -}; -pub const MIN_WEIGHT: Weight = Weight { - id: Uuid::nil(), - value: 0.0, -}; -pub const EPSILON_WEIGHT: Weight = Weight { - id: Uuid::nil(), - value: f64::EPSILON, -}; - -impl Weight { - pub fn new(weight: f64) -> Result { - let clamped_weight = weight.clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - - // If these values are not the same it means the weight is out of bounds. - if (clamped_weight - weight).abs() > f64::EPSILON { - Err(WeightError::InvalidWeight(weight)) - } else { - Ok(Weight { - id: Uuid::new_v4(), - value: weight, - }) - } - } - - pub fn abs(&self) -> Self { - Self { - value: self.value.abs(), - ..*self - } - } - - pub fn set_value(&mut self, weight: f64) -> Result<(), WeightError> { - let clamped_weight = weight.clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - - // If these values are not the same it means the weight is out of bounds. - if (clamped_weight - weight).abs() > f64::EPSILON { - Err(WeightError::InvalidWeight(weight)) - } else { - self.value = weight; - Ok(()) - } - } - - pub fn adjust(&mut self, adjustment: f64) { - self.value = (self.value + adjustment).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - } -} - -impl Add for Weight { - type Output = Self; - - fn add(self, rhs: Self) -> Self::Output { - // Check if we overflow our upper bound or underflow our lower bound. - let sum = (self.value + rhs.value).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - - println!("Addding {} and {}: {} ", self.value, rhs.value, sum); - // If rhs has the same id as self, then we can just add the values - // together. - if self.id == rhs.id { - return Self { value: sum, ..self }; - } - - // Else, add them and return a weight with a new id. - Weight::new(sum).unwrap() - } -} - -impl Sub for Weight { - type Output = Self; - - fn sub(self, rhs: Self) -> Self::Output { - let difference = (self.value - rhs.value).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - - // If rhs has the same id as self, then we can just subtract the values - // together. - if self.id == rhs.id { - return Self { - value: difference, - ..self - }; - } - - // Else, subtract them and return a weight with a new id. - Weight::new(difference).unwrap() - } -} - -impl Mul for Weight { - type Output = Self; - - fn mul(self, rhs: Self) -> Self::Output { - let product = (self.value * rhs.value).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - - // If rhs has the same id as self, then we can just multiply the values - // together. - if self.id == rhs.id { - return Self { - value: product, - ..self - }; - } - - // Else, return a new weight with a new id. - Weight::new(product).unwrap() - } -} - -impl Div for Weight { - type Output = Self; - - fn div(self, rhs: Self) -> Self::Output { - let quotient = (self.value / rhs.value).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - - // If rhs has the same id as self, then we can just divide the values - // together. - if self.id == rhs.id { - return Self { - value: quotient, - ..self - }; - } - - // Else, return a new weight with a new id. - Weight::new(quotient).unwrap() - } -} - -impl Add for Weight { - type Output = Self; - - fn add(self, rhs: f64) -> Self::Output { - let sum = (self.value + rhs).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - - Self { value: sum, ..self } - } -} - -impl Sub for Weight { - type Output = Self; - - fn sub(self, rhs: f64) -> Self::Output { - let difference = (self.value - rhs).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - - Self { - value: difference, - ..self - } - } -} - -impl Div for Weight { - type Output = Self; - - fn div(self, rhs: f64) -> Self::Output { - let quotient = (self.value / rhs).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - Self { - value: quotient, - ..self - } - } -} - -impl Mul for Weight { - type Output = Self; - - fn mul(self, rhs: f64) -> Self::Output { - let product = (self.value * rhs).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - - Self { - value: product, - ..self - } - } -} - -impl AddAssign for Weight { - fn add_assign(&mut self, rhs: f64) { - self.value = (self.value + rhs).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - } -} - -impl AddAssign for Weight { - fn add_assign(&mut self, rhs: Self) { - self.value = (self.value + rhs.value).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - } -} - -impl SubAssign for Weight { - fn sub_assign(&mut self, rhs: f64) { - self.value = (self.value - rhs).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - } -} - -impl SubAssign for Weight { - fn sub_assign(&mut self, rhs: Self) { - self.value = (self.value - rhs.value).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - } -} - -impl MulAssign for Weight { - fn mul_assign(&mut self, rhs: f64) { - self.value = (self.value * rhs).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - } -} - -impl MulAssign for Weight { - fn mul_assign(&mut self, rhs: Self) { - self.value = (self.value * rhs.value).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - } -} - -impl DivAssign for Weight { - fn div_assign(&mut self, rhs: f64) { - self.value = (self.value / rhs).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - } -} - -impl DivAssign for Weight { - fn div_assign(&mut self, rhs: Self) { - self.value = (self.value / rhs.value).clamp(MIN_WEIGHT.value, MAX_WEIGHT.value); - } -} - -impl From for Weight { - fn from(value: f64) -> Self { - Self { - id: Uuid::new_v4(), - value, - } - } -} - -impl From for f64 { - fn from(weight: Weight) -> Self { - weight.value - } -} - -impl PartialEq for Weight { - fn eq(&self, other: &Self) -> bool { - self.value == other.value - } -} - -impl Eq for Weight {} - -impl Hash for Weight { - fn hash(&self, state: &mut H) { - self.id.hash(state); - } -} - -impl PartialOrd for Weight { - fn partial_cmp(&self, other: &Self) -> Option { - Some(self.cmp(other)) - } -} - -impl Ord for Weight { - fn cmp(&self, other: &Self) -> std::cmp::Ordering { - self.value.partial_cmp(&other.value).unwrap() - } -} - -impl Neg for Weight { - type Output = Self; - - fn neg(self) -> Self::Output { - Self { - value: -self.value, - ..self - } - } -} - -impl fmt::Display for Weight { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "{}", self.value) - } -} - -/// Errors that can occur when handling weights. -#[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize, PartialOrd)] -pub enum WeightError { - WeightNotFound(Uuid), - InvalidWeight(f64), - InvalidSum(f64), -} - -impl Hash for WeightError { - fn hash(&self, state: &mut H) { - match self { - WeightError::WeightNotFound(id) => id.hash(state), - WeightError::InvalidWeight(weight) => weight.to_bits().hash(state), - WeightError::InvalidSum(sum) => sum.to_bits().hash(state), - } - } -} - -impl fmt::Display for WeightError { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self { - WeightError::WeightNotFound(id) => write!(f, "Weight with id {} not found", id), - WeightError::InvalidWeight(weight) => { - write!(f, "Weight {} is not within bounds", weight) - } - WeightError::InvalidSum(sum) => write!(f, "Sum {} is not 1.0", sum), - } - } -} - -impl std::error::Error for WeightError {} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_weight_new() { - let weight = Weight::new(0.5).unwrap(); - assert_eq!(weight.value, 0.5); - } - - #[test] - fn test_weight_new_invalid() { - let weight = Weight::new(1.5); - assert!(weight.is_err()); - } - - #[test] - fn test_weight_add() { - let weight = Weight::new(0.5).unwrap(); - let weight2 = weight; - let weight3 = weight + weight2; - assert_eq!(weight3.value, 1.0); - } - - #[test] - fn test_weight_add_different_ids() { - let weight = Weight::new(0.5).unwrap(); - let weight2 = Weight::new(0.5).unwrap(); - let weight3 = weight + weight2; - assert_ne!(weight3.id, weight.id); - assert_ne!(weight3.id, weight2.id); - } - - #[test] - fn test_weight_add_different_ids_different_values() { - let weight = Weight::new(0.5).unwrap(); - let weight2 = Weight::new(0.5).unwrap(); - let weight3 = weight + weight2; - assert_ne!(weight3.id, weight.id); - assert_ne!(weight3.id, weight2.id); - assert_eq!(weight3.value, 1.0); - } - - #[test] - fn test_weight_sub() { - let weight = Weight::new(0.5).unwrap(); - let weight2 = weight; - let weight3 = weight - weight2; - assert_eq!(weight3.value, 0.0); - } - - #[test] - fn test_weight_sub_different_ids() { - let weight = Weight::new(0.5).unwrap(); - let weight2 = Weight::new(0.5).unwrap(); - let weight3 = weight - weight2; - assert_ne!(weight3.id, weight.id); - assert_ne!(weight3.id, weight2.id); - } - - #[test] - fn test_weight_sub_different_ids_different_values() { - let weight = Weight::new(0.5).unwrap(); - let weight2 = Weight::new(0.5).unwrap(); - let weight3 = weight - weight2; - assert_ne!(weight3.id, weight.id); - assert_ne!(weight3.id, weight2.id); - assert_eq!(weight3.value, 0.0); - } -} diff --git a/crates/dfmm/src/rmm.rs b/crates/dfmm/src/rmm.rs deleted file mode 100644 index 62fdf00a6..000000000 --- a/crates/dfmm/src/rmm.rs +++ /dev/null @@ -1,393 +0,0 @@ -use reikna::integral::*; -use statrs::distribution::{Continuous, ContinuousCDF, Normal}; - -use super::*; - -#[tracing::instrument(ret, level = "trace")] -pub fn compute_sigma_sqrt_tau(sigma: f64, tau: f64) -> f64 { - let sqrt_tau = tau.sqrt(); - sigma * sqrt_tau -} - -#[tracing::instrument(ret, level = "trace")] -pub fn compute_half_sigma_power_2_tau(sigma: f64, tau: f64) -> f64 { - (sigma.powi(2) * tau) / 2.0 -} - -#[tracing::instrument(ret, level = "trace")] -pub fn compute_ln_s_div_k(s: f64, k: f64) -> f64 { - (s / k).ln() -} - -#[tracing::instrument(ret, level = "trace")] -pub fn compute_d1(s: f64, k: f64, sigma: f64, tau: f64) -> f64 { - let sigma_sqrt_tau = sigma * tau.sqrt(); - let ln_s_div_k = compute_ln_s_div_k(s, k); - let half_sigma_pow_two_tau = compute_half_sigma_power_2_tau(sigma, tau); - - (ln_s_div_k + half_sigma_pow_two_tau) / sigma_sqrt_tau -} - -#[tracing::instrument(ret, level = "trace")] -pub fn compute_d2(s: f64, k: f64, sigma: f64, tau: f64) -> f64 { - let sigma_sqrt_tau = compute_sigma_sqrt_tau(sigma, tau); - let ln_s_div_k = compute_ln_s_div_k(s, k); - let half_sigma_pow_two_tau = compute_half_sigma_power_2_tau(sigma, tau); - - (ln_s_div_k - half_sigma_pow_two_tau) / sigma_sqrt_tau -} - -#[tracing::instrument(ret, level = "trace")] -pub fn compute_l_given_x_rust( - reserve_x_float: f64, - spot_price_float: f64, - strike_price_float: f64, - sigma_float: f64, - tau_float: f64, -) -> f64 { - let normal = Normal::new(0.0, 1.0).unwrap(); - let denominator = 1.0 - - normal.cdf(compute_d1( - spot_price_float, - strike_price_float, - sigma_float, - tau_float, - )); - reserve_x_float / denominator -} - -#[tracing::instrument(ret, level = "trace")] -pub fn compute_l_given_y_rust( - reserve_y_float: f64, - spot_price_float: f64, - strike_price_float: f64, - sigma_float: f64, - tau_float: f64, -) -> f64 { - let normal = Normal::new(0.0, 1.0).unwrap(); - let denominator = 1.0 - - normal.cdf(compute_d2( - spot_price_float, - strike_price_float, - sigma_float, - tau_float, - )); - reserve_y_float / denominator -} - -#[tracing::instrument(ret, level = "trace")] -pub fn compute_x_given_l_rust( - liquidity_float: f64, - spot_price_float: f64, - strike_price_float: f64, - sigma_float: f64, - tau_float: f64, -) -> f64 { - let normal = Normal::new(0.0, 1.0).unwrap(); - let cdf = normal.cdf(compute_d1( - spot_price_float, - strike_price_float, - sigma_float, - tau_float, - )); - liquidity_float * (1.0 - cdf) -} - -#[tracing::instrument(ret, level = "trace")] -pub fn compute_y_given_l_rust( - liquidity_float: f64, - spot_price_float: f64, - strike_price_float: f64, - sigma_float: f64, - tau_float: f64, -) -> f64 { - let normal = Normal::new(0.0, 1.0).unwrap(); - let cdf = normal.cdf(compute_d2( - spot_price_float, - strike_price_float, - sigma_float, - tau_float, - )); - strike_price_float * liquidity_float * cdf -} - -#[tracing::instrument(ret, level = "trace")] -pub fn compute_spot_price_rust( - reserve_x_float: f64, - liquidity_float: f64, - strike_price_float: f64, - sigma_float: f64, - tau_float: f64, -) -> f64 { - let normal = Normal::new(0.0, 1.0).unwrap(); - let sigma_sqrt_tau = compute_sigma_sqrt_tau(sigma_float, tau_float); - let half_sigma_power_2_tau = compute_half_sigma_power_2_tau(sigma_float, tau_float); - let r1 = reserve_x_float / liquidity_float; - - strike_price_float - * ((normal.inverse_cdf(1.0 - r1) * sigma_sqrt_tau - half_sigma_power_2_tau).exp()) -} - -#[allow(clippy::too_many_arguments)] -#[tracing::instrument(ret, level = "trace")] -pub fn compute_output_y_given_x_rust( - reserve_x_float: f64, - reserve_y_float: f64, - delta_x_float: f64, - liquidity_float: f64, - delta_l_float: f64, - strike_price_float: f64, - sigma_float: f64, - tau_float: f64, -) -> f64 { - let normal = Normal::new(0.0, 1.0).unwrap(); - let sigma_sqrt_tau = compute_sigma_sqrt_tau(sigma_float, tau_float); - let kl = strike_price_float * (liquidity_float + delta_l_float); - - let cdf = normal.cdf( - -sigma_sqrt_tau - - normal - .inverse_cdf((reserve_x_float + delta_x_float) / (liquidity_float + delta_l_float)), - ); - - kl * cdf - reserve_y_float -} - -#[allow(clippy::too_many_arguments)] -#[tracing::instrument(ret, level = "trace")] -pub fn compute_output_x_given_y_rust( - reserve_x_float: f64, - reserve_y_float: f64, - delta_y_float: f64, - liquidity_float: f64, - delta_l_float: f64, - strike_price_float: f64, - sigma_float: f64, - tau_float: f64, -) -> f64 { - let normal = Normal::new(0.0, 1.0).unwrap(); - let sigma_sqrt_tau = compute_sigma_sqrt_tau(sigma_float, tau_float); - let kl = strike_price_float * (liquidity_float + delta_l_float); - - let cdf = - normal.cdf(-sigma_sqrt_tau - normal.inverse_cdf((reserve_y_float + delta_y_float) / kl)); - - kl * cdf - reserve_x_float -} - -#[allow(clippy::too_many_arguments)] -#[tracing::instrument(ret, level = "trace")] -pub fn compute_y_given_x_rust( - reserve_x_float: f64, - liquidity_float: f64, - strike_price_float: f64, - sigma_float: f64, - tau_float: f64, -) -> f64 { - let normal = Normal::new(0.0, 1.0).unwrap(); - let sigma_sqrt_tau = compute_sigma_sqrt_tau(sigma_float, tau_float); - let kl = strike_price_float * (liquidity_float); - - let cdf = - normal.cdf(-normal.inverse_cdf((reserve_x_float) / (liquidity_float)) - sigma_sqrt_tau); - - kl * cdf -} - -/// K e^(-1/2 v^2 t) [v sqrt(t) e^(ln(x / K) + 1/2 v^2 t) / Gaussian.pdf{ -/// ln(x/K) / v sqrt(t) + 1/2 v sqrt(t) }] -/// Computes a necessary component of the liquidity distribution, but I am not -/// 100% sure what it represents. Add a comment here to tell me! -#[allow(clippy::too_many_arguments)] -#[tracing::instrument(ret, level = "trace")] -pub fn g_x( - reserve_x_wad_float: f64, - strike_price_wad_float: f64, - sigma_percent_wad_float: f64, - time_to_expiry_years_wad_float: f64, -) -> f64 { - // If x is within float epilson of 0, return 0. - if reserve_x_wad_float < f64::EPSILON && reserve_x_wad_float > -f64::EPSILON { - return 0.0; - } - - let normal = statrs::distribution::Normal::new(0.0, 1.0).unwrap(); - // v sqrt(t) - let v_sqrt_t = compute_sigma_sqrt_tau(sigma_percent_wad_float, time_to_expiry_years_wad_float); - // ln(x / K) - let ln_x_div_k = compute_ln_s_div_k(reserve_x_wad_float, strike_price_wad_float); - // 1/2 v sqrt(t) - let half_sigma_pow_two_tau = - compute_half_sigma_power_2_tau(sigma_percent_wad_float, time_to_expiry_years_wad_float); - // K e^(-1/2 v^2 t) - let term_1 = strike_price_wad_float * (-half_sigma_pow_two_tau).exp(); - // v sqrt(t) e^(ln(x / K) + 1/2 v^2 t) - let numerator = v_sqrt_t * (ln_x_div_k + half_sigma_pow_two_tau).exp(); - // Gaussian.pdf(ln(x/K) / v sqrt(t) + 1/2 v sqrt(t)) - let denominator = normal.pdf(ln_x_div_k / v_sqrt_t + half_sigma_pow_two_tau); - - term_1 * numerator / denominator -} - -/// a = L / integral(0, 100)( 1 / g(x) gx ) -/// Warning: This function is undefined for x = 0. This will throw a NaN, which -/// is why we pass the lower bound as f64::EPSILON. -/// -/// Should do up to 1000, but thats slower than 100. -#[allow(clippy::too_many_arguments)] -#[tracing::instrument(ret, level = "trace")] -pub fn get_a( - total_liquidity_wad_float: f64, - strike_price_wad_float: f64, - sigma_percent_wad_float: f64, - time_to_expiry_years_wad_float: f64, -) -> f64 { - let g_x = reikna::func!(move |x: f64| 1.0 - / g_x( - x, - strike_price_wad_float, - sigma_percent_wad_float, - time_to_expiry_years_wad_float - )); - let integral = reikna::integral::integrate(&g_x, f64::EPSILON, 100.0); - total_liquidity_wad_float / integral -} - -/// a / g(x) -/// Computes the liquidity distribution of the Log Normal (RMM) curve. -#[allow(clippy::too_many_arguments)] -#[tracing::instrument(ret, level = "trace")] -pub fn liq_distribution( - reserve_x_wad_float: f64, - total_liquidity_wad_float: f64, - strike_price_wad_float: f64, - sigma_percent_wad_float: f64, - time_to_expiry_years_wad_float: f64, -) -> f64 { - let a = get_a( - total_liquidity_wad_float, - strike_price_wad_float, - sigma_percent_wad_float, - time_to_expiry_years_wad_float, - ); - a / g_x( - reserve_x_wad_float, - strike_price_wad_float, - sigma_percent_wad_float, - time_to_expiry_years_wad_float, - ) -} - -/// P_x(x) = K e^(phi^-1(1 - x / L) sigma sqrt(t) - 1/2 sigma^2 t) -/// x(P_x) = L * (1 - phi( [ln(P_x / K) + 1/2 sigma^2 t] / sigma sqrt(t) )) -#[tracing::instrument(level = "trace")] -pub fn compute_x_given_price( - spot_price_float: f64, - total_liquidity: f64, - strike_price_wad_float: f64, - sigma_percent_wad_float: f64, - time_to_expiry_years_wad_float: f64, -) -> f64 { - let normal = statrs::distribution::Normal::new(0.0, 1.0).expect("Normal distribution failed"); - let sigma_sqrt_tau = - compute_sigma_sqrt_tau(sigma_percent_wad_float, time_to_expiry_years_wad_float); - let half_sigma_pow_two_tau = - compute_half_sigma_power_2_tau(sigma_percent_wad_float, time_to_expiry_years_wad_float); - - let ln_x_div_k = compute_ln_s_div_k(spot_price_float, strike_price_wad_float); - let cdf = normal.cdf((ln_x_div_k + half_sigma_pow_two_tau) / sigma_sqrt_tau); - - total_liquidity * (1.0 - cdf) -} - -/// V = P(1 - n(d1)) + Kn(d2) -pub fn compute_value_function( - spot_price_float: f64, - strike_price_wad_float: f64, - sigma_percent_wad_float: f64, - time_to_expiry_years_wad_float: f64, -) -> f64 { - let normal = statrs::distribution::Normal::new(0.0, 1.0).expect("Normal distribution failed"); - let d1 = compute_d1( - spot_price_float, - strike_price_wad_float, - sigma_percent_wad_float, - time_to_expiry_years_wad_float, - ); - - let d2 = compute_d2( - spot_price_float, - strike_price_wad_float, - sigma_percent_wad_float, - time_to_expiry_years_wad_float, - ); - - let n_d1 = normal.cdf(d1); - let n_d2 = normal.cdf(d2); - spot_price_float * (1.0 - n_d1) + strike_price_wad_float * n_d2 -} - -/// P_x(x) = K e^(phi^-1(1 - x / L) sigma sqrt(t) - 1/2 sigma^2 t) -pub fn compute_price_given_x_rust( - reserve_x_float: f64, - total_liquidity: f64, - strike_price_wad_float: f64, - sigma_percent_wad_float: f64, - time_to_expiry_years_wad_float: f64, -) -> f64 { - let normal = statrs::distribution::Normal::new(0.0, 1.0).expect("Normal distribution failed"); - let sigma_sqrt_tau = - compute_sigma_sqrt_tau(sigma_percent_wad_float, time_to_expiry_years_wad_float); - let half_sigma_pow_two_tau = - compute_half_sigma_power_2_tau(sigma_percent_wad_float, time_to_expiry_years_wad_float); - - let power = normal.inverse_cdf(1.0 - reserve_x_float / total_liquidity) * sigma_sqrt_tau - - half_sigma_pow_two_tau; - - strike_price_wad_float * power.exp() -} - -#[cfg(test)] -mod test { - use statrs::assert_almost_eq; - - use super::*; - - #[test] - fn test_g_x() { - let x = 0.5; - let strike = 1.0; - let sigma = 1.0; - let time_to_expiry = 1.0; - - let depth = g_x(x, strike, sigma, time_to_expiry); - println!("depth: {}", depth); - } - - #[test] - fn test_get_a() { - let liquidity = 1.0; - let strike = 1.0; - let sigma = 1.0; - let time_to_expiry = 1.0; - - let depth = get_a(liquidity, strike, sigma, time_to_expiry); - println!("depth: {}", depth); - - assert_almost_eq!(depth, 1.0, 1e-2); - } - - #[test] - fn test_liquidity_distribution() { - let x = 0.05; - let liquidity = 1.0; - let strike = 1.0; - let sigma = 1.0; - let time_to_expiry = 1.0; - - let depth = liq_distribution(x, liquidity, strike, sigma, time_to_expiry); - println!("depth: {}", depth); - - assert_almost_eq!(depth, 0.354, 1e-3); - } -} diff --git a/crates/dfmm/src/scenarios.rs b/crates/dfmm/src/scenarios.rs deleted file mode 100644 index 3b5cb7a3f..000000000 --- a/crates/dfmm/src/scenarios.rs +++ /dev/null @@ -1,186 +0,0 @@ -use arbiter_core::events::Logger; -use clients::protocol::ProtocolClient; - -use self::agents::portfolio_management::{ - g3m::{dca_g3m_setup, g3m_setup}, - lognormal::ln_setup, -}; -use super::*; -use crate::{ - agent::Agents, - agents::base::{block_admin::BlockAdmin, price_changer::PriceChanger, token_admin::TokenAdmin}, -}; - -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] -pub enum Scenarios { - Dca, - VolatilityTargeting, - Momentum, -} - -/// Implements the scenario by adding the chosen agents to the simulation's -/// environment. -#[async_trait::async_trait] -pub trait Scenario: Clone + Sync + Send + Sized + Any { - async fn setup( - &self, - environment: Environment, - config: SimulationConfig, - ) -> Result<(Agents, usize, Environment), SimulationError>; -} - -#[async_trait::async_trait] -impl Scenario for Scenarios { - async fn setup( - &self, - environment: Environment, - config: SimulationConfig, - ) -> Result<(Agents, usize, Environment), SimulationError> { - let scenario_type = config.scenario.clone(); - let (agents, steps, environment) = match scenario_type { - Scenarios::Dca => dca_setup(environment, config).await?, - Scenarios::VolatilityTargeting => dynamic_weights_setup(environment, config).await?, - Scenarios::Momentum => dynamic_weights_setup(environment, config).await?, - }; - - Ok((agents, steps, environment)) - } -} - -async fn dca_setup( - environment: Environment, - config: SimulationConfig, -) -> Result<(Agents, usize, Environment), SimulationError> { - let mut agents = Agents::new(); - - let block_admin = BlockAdmin::new(&environment, &config, "block_admin").await?; - agents.add(block_admin); - - let token_admin = TokenAdmin::new(&environment, &config, "token_admin").await?; - agents.add(token_admin.clone()); - - let price_changer = - PriceChanger::new(&environment, &config, "price_changer", &token_admin).await?; - let steps = price_changer.trajectory.paths[0].len() - 1; - - let lex = price_changer.liquid_exchange.address(); - let lex_events = price_changer.liquid_exchange.events(); - agents.add(price_changer); - - let base_client = ArbiterMiddleware::new(&environment, "base".into()).unwrap(); - let base_protocol_client = ProtocolClient::new( - base_client.clone(), - token_admin.arbx.address(), - token_admin.arby.address(), - 0.003, - ) - .await?; - - let g3m_pool_id = base_protocol_client.get_next_pool_id().await?; - - let (g3m_lp, g3m_arb, dca_swapper) = dca_g3m_setup( - &environment, - &config, - base_protocol_client.clone(), - lex, - &token_admin, - g3m_pool_id, - ) - .await?; - - let g3m_arb_events = g3m_arb.0.atomic_arbitrage.events(); - let dca_portfolio_tracker_events = dca_swapper.portfolio_tracker.events(); - agents.add(g3m_lp); - agents.add(dca_swapper); - agents.add(g3m_arb); - - Logger::builder() - .directory(config.output_directory.clone()) - .file_name(config.output_file_name.clone().unwrap()) - .with_event(lex_events, "lex") - .with_event(base_protocol_client.protocol.events(), "dfmm") - .with_event(token_admin.arbx.events(), "arbx") - .with_event(token_admin.arby.events(), "arby") - .with_event(dca_portfolio_tracker_events, "dca_portfolio_tracker") - .with_event(g3m_arb_events, "g3m_atomic_arbitrage") - .run() - .map_err(|e| SimulationError::GenericError(e.to_string()))?; - - Ok((agents, steps, environment)) -} - -async fn dynamic_weights_setup( - environment: Environment, - config: SimulationConfig, -) -> Result<(Agents, usize, Environment), SimulationError> { - let mut agents = Agents::new(); - - let block_admin = BlockAdmin::new(&environment, &config, "block_admin").await?; - agents.add(block_admin); - - let token_admin = TokenAdmin::new(&environment, &config, "token_admin").await?; - agents.add(token_admin.clone()); - - let price_changer = - PriceChanger::new(&environment, &config, "price_changer", &token_admin).await?; - let steps = price_changer.trajectory.paths[0].len() - 1; - - let lex = price_changer.liquid_exchange.address(); - let lex_events = price_changer.liquid_exchange.events(); - agents.add(price_changer); - - let base_client = ArbiterMiddleware::new(&environment, "base".into()).unwrap(); - let base_protocol_client = ProtocolClient::new( - base_client.clone(), - token_admin.arbx.address(), - token_admin.arby.address(), - 0.003, - ) - .await?; - - let ln_pool_id = base_protocol_client.get_next_pool_id().await?; - - let (ln_lp, ln_arb, ln_manager) = ln_setup( - &environment, - &config, - base_protocol_client.clone(), - lex, - &token_admin, - ln_pool_id, - ) - .await?; - let ln_arb_events = ln_arb.0.atomic_arbitrage.events(); - agents.add(ln_lp); - agents.add(ln_arb); - agents.add(ln_manager); - - let g3m_pool_id = base_protocol_client.get_next_pool_id().await? + U256::from(1); - - let (g3m_lp, g3m_arb, g3m_manager) = g3m_setup( - &environment, - &config, - base_protocol_client.clone(), - lex, - &token_admin, - g3m_pool_id, - ) - .await?; - let g3m_arb_events = g3m_arb.0.atomic_arbitrage.events(); - agents.add(g3m_lp); - agents.add(g3m_arb); - agents.add(g3m_manager); - - Logger::builder() - .directory(config.output_directory.clone()) - .file_name(config.output_file_name.clone().unwrap()) - .with_event(lex_events, "lex") - .with_event(base_protocol_client.protocol.events(), "dfmm") - .with_event(token_admin.arbx.events(), "arbx") - .with_event(token_admin.arby.events(), "arby") - .with_event(g3m_arb_events, "g3m_atomic_arbitrage") - .with_event(ln_arb_events, "ln_atomic_arbitrage") - .run() - .map_err(|e| SimulationError::GenericError(e.to_string()))?; - - Ok((agents, steps, environment)) -} diff --git a/crates/dfmm/src/settings/mod.rs b/crates/dfmm/src/settings/mod.rs deleted file mode 100644 index a731d3376..000000000 --- a/crates/dfmm/src/settings/mod.rs +++ /dev/null @@ -1,117 +0,0 @@ -pub mod parameters; -use std::collections::BTreeMap; - -use config::Config; -use itertools::Itertools; -use parameters::*; - -pub use self::parameters::Parameterized; -use self::scenarios::Scenarios; -use super::*; -use crate::agents::AgentParameters; - -#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Default)] -pub enum SimulationType { - #[default] - DynamicWeights, - VolatilityTargeting, - G3mLinearDca, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct SimulationConfig { - pub scenario: Scenarios, - pub max_parallel: Option, - pub output_directory: String, - pub output_file_name: Option, - #[serde(rename = "agent")] - pub agent_parameters: BTreeMap>, -} - -impl SimulationConfig { - pub fn new(config_path: &str) -> Result { - let s = Config::builder() - .add_source(config::File::with_name(config_path)) - .build()?; - s.try_deserialize() - } -} - -impl From> for Vec> { - fn from(item: SimulationConfig) -> Self { - let mut index = 0; - let mut configs = Vec::new(); - let mut map_vector: BTreeMap>> = BTreeMap::new(); - for (label, parameters) in &item.agent_parameters { - let parameters_multiple = parameters.clone(); - let parameters: Vec> = parameters_multiple.into(); - map_vector.insert(label.clone(), parameters); - } - let combinations = map_vector.values().multi_cartesian_product(); - for combination in combinations { - let mut config = SimulationConfig { - scenario: item.scenario.clone(), - max_parallel: item.max_parallel, - output_directory: item.output_directory.clone(), - output_file_name: Some(index.to_string()), - agent_parameters: BTreeMap::new(), - }; - for (label, parameters) in map_vector.keys().zip(combination) { - config - .agent_parameters - .insert(label.clone(), parameters.clone()); // Clone the parameters as they are owned by the combination - } - configs.push(config); - index += 1; - } - configs - } -} - -impl

Default for SimulationConfig

-where - P: Parameterized, -{ - fn default() -> Self { - Self { - scenario: Scenarios::Dca, - max_parallel: None, - output_directory: "output".to_string(), - output_file_name: None, - agent_parameters: BTreeMap::new(), - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn read_in_static() { - let configs = SimulationConfig::new("src/tests/configs/static.toml").unwrap(); - let configs: Vec> = configs.into(); - let config = configs[0].clone(); - assert_eq!(configs.len(), 1); - assert_eq!(config.scenario, Scenarios::Dca); - assert_eq!( - config.output_directory, - "src/tests/output/static".to_string(), - ); - let agent_parameters = config.agent_parameters.clone(); - assert_eq!(agent_parameters.len(), 5); - - assert!(agent_parameters.get("block_admin").is_some()); - assert!(agent_parameters.get("token_admin").is_some()); - assert!(agent_parameters.get("price_changer").is_some()); - assert!(agent_parameters.get("weight_changer").is_some()); - assert!(agent_parameters.get("lp").is_some()) - } - - #[test] - fn read_in_sweep() { - let config = SimulationConfig::new("src/tests/configs/sweep.toml").unwrap(); - let configs: Vec> = config.into(); - assert_eq!(configs.len(), 128); - } -} diff --git a/crates/dfmm/src/settings/parameters.rs b/crates/dfmm/src/settings/parameters.rs deleted file mode 100644 index 33178a596..000000000 --- a/crates/dfmm/src/settings/parameters.rs +++ /dev/null @@ -1,72 +0,0 @@ -use super::*; - -pub trait Parameterized { - fn parameters(&self) -> Vec; -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub struct Single(pub f64); -impl Parameterized for Single { - fn parameters(&self) -> Vec { - vec![self.0] - } -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -pub struct Multiple(pub LinspaceParameters); -impl Parameterized for Multiple { - fn parameters(&self) -> Vec { - self.0.generate() - } -} - -#[derive(Copy, Clone, Debug, Serialize, Deserialize, Default)] -pub struct LinspaceParameters { - pub start: Option, - pub end: Option, - pub steps: Option, - pub fixed: Option, -} - -impl LinspaceParameters { - pub fn generate(&self) -> Vec { - // Check if start, end, steps are all Some - match (self.start, self.end, self.steps) { - (Some(start), Some(end), Some(steps)) => { - if self.fixed.is_some() { - panic!("Both linspace and fixed parameters are set"); - } - let step_size = (end - start) / (steps as f64 - 1.0); - (0..steps).map(|i| start + step_size * i as f64).collect() - } - // If only fixed is Some, return a vec with that fixed value - (_, _, _) if self.fixed.is_some() => vec![self.fixed.unwrap()], - // Otherwise, configuration is invalid - _ => panic!("Invalid configuration for LinspaceParameters. Please provide a `start`, `end`, and `steps` or alternatively just provide a `fixed` value."), - } - } -} - -#[macro_export] -macro_rules! linspace { - ($start:expr, $end:expr, $steps:expr) => { - LinspaceParameters { - start: Some($start), - end: Some($end), - steps: Some($steps), - fixed: None, - } - .generate() - }; -} - -impl Default for Multiple { - fn default() -> Self { - Self(LinspaceParameters { - start: Some(0.0), - end: Some(1.0), - steps: Some(1), - fixed: None, - }) - } -} diff --git a/documentation/Cargo.toml b/documentation/Cargo.toml deleted file mode 100644 index bbc55ee90..000000000 --- a/documentation/Cargo.toml +++ /dev/null @@ -1,14 +0,0 @@ -[package] -name = "documentation" -version = "0.0.0" -edition = "2021" -build = "build.rs" - -[build-dependencies] -skeptic = "0.13.7" -tokio.workspace = true - -[dev-dependencies] -skeptic = "0.13.7" -arbiter-core.workspace = true -arbiter-bindings.workspace = true \ No newline at end of file diff --git a/documentation/build.rs b/documentation/build.rs deleted file mode 100644 index 104d80e54..000000000 --- a/documentation/build.rs +++ /dev/null @@ -1,8 +0,0 @@ -use skeptic::markdown_files_of_directory; - -extern crate skeptic; - -fn main() { - let markdown_files = markdown_files_of_directory("src/"); - skeptic::generate_doc_tests(&markdown_files); -} diff --git a/documentation/notebooks/geometric_mean.nb b/documentation/notebooks/geometric_mean.nb deleted file mode 100644 index ff59428bb..000000000 --- a/documentation/notebooks/geometric_mean.nb +++ /dev/null @@ -1,2256 +0,0 @@ -(* Content-type: application/vnd.wolfram.mathematica *) - -(*** Wolfram Notebook File ***) -(* http://www.wolfram.com/nb *) - -(* CreatedBy='WolframDesktop 13.2' *) - -(*CacheID: 234*) -(* Internal cache information: -NotebookFileLineBreakTest -NotebookFileLineBreakTest -NotebookDataPosition[ 161, 7] -NotebookDataLength[ 80488, 2248] -NotebookOptionsPosition[ 72771, 2103] -NotebookOutlinePosition[ 73328, 2122] -CellTagsIndexPosition[ 73285, 2119] -WindowFrame->Normal*) - -(* Beginning of Notebook Content *) -Notebook[{ - -Cell[CellGroupData[{ -Cell["Geometric Mean Trading Function Calculations", "Title", - CellChangeTimes->{{3.911911510375986*^9, - 3.9119115202551813`*^9}},ExpressionUUID->"464b00f2-edbc-4299-9ebc-\ -bbbbadc48e36"], - -Cell[CellGroupData[{ - -Cell["First, we set up the workspace", "Section", - CellChangeTimes->{{3.9119115280235243`*^9, - 3.911911535817244*^9}},ExpressionUUID->"7647c4f8-4fe4-4b60-9236-\ -0948b016bc8d"], - -Cell[BoxData[ - RowBox[{ - RowBox[{ - RowBox[{"On", "[", "Assert", "]"}], ";"}], " ", - RowBox[{"(*", " ", - RowBox[{ - RowBox[{ - "Asserts", " ", "will", " ", "show", " ", "a", " ", "failure", " ", "if", - " ", "they", " ", "fail"}], ",", " ", - RowBox[{"and", " ", "nothing", " ", "if", " ", "they", " ", - RowBox[{"don", "'"}], "t"}]}], " ", "*)"}]}]], "Code", - CellChangeTimes->{{3.9119115610079527`*^9, 3.91191157715276*^9}}, - CellLabel-> - "In[454]:=",ExpressionUUID->"90a85ca4-15ef-43a6-a1c9-9ded2b5b4873"], - -Cell[CellGroupData[{ - -Cell["Let\[CloseCurlyQuote]s define the functions for the DFMM.", "Subsection", - CellChangeTimes->{{3.9119116219881563`*^9, - 3.911911629097294*^9}},ExpressionUUID->"2a9c67df-985b-48b8-9ff4-\ -a81c2ce2cf78"], - -Cell[CellGroupData[{ - -Cell["\<\ -Functions to get initial liquidity given a token amount and a price.\ -\>", "Subsubsection", - CellChangeTimes->{{3.911911635661106*^9, - 3.911911650465029*^9}},ExpressionUUID->"a33110f6-a0d7-448f-8bd8-\ -0f79efb458dd"], - -Cell[TextData[{ - "We will assume for this whole document that ", - Cell[BoxData[ - FormBox[ - RowBox[{"w", "=", - SubscriptBox["w", "X"]}], TraditionalForm]],ExpressionUUID-> - "477424ec-0032-438b-aee2-6d6a473201b1"], - " and ", - Cell[BoxData[ - FormBox[ - RowBox[{ - SubscriptBox["w", "X"], "=", - RowBox[{"1", "-", - SubscriptBox["w", "Y"]}]}], TraditionalForm]],ExpressionUUID-> - "e8d1d46e-b904-454c-99fc-b2a495220d0d"], - " for simplicity" -}], "Text", - CellChangeTimes->{{3.911911717758877*^9, 3.9119117406902027`*^9}, { - 3.911912327913166*^9, - 3.911912333780533*^9}},ExpressionUUID->"9a6a4459-0d52-4b73-811d-\ -1f5b6974a4d1"], - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - SubscriptBox["L", "X"], "[", - RowBox[{"x_", ",", "S_", ",", "w_"}], "]"}], ":=", - RowBox[{"x", - SuperscriptBox[ - RowBox[{"(", - RowBox[{ - FractionBox[ - RowBox[{"1", "-", "w"}], "w"], "S"}], ")"}], - RowBox[{"1", "-", "w"}]]}]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["L", "Y"], "[", - RowBox[{"y_", ",", "S_", ",", "w_"}], "]"}], ":=", - RowBox[{"y", - SuperscriptBox[ - RowBox[{"(", - RowBox[{ - FractionBox["w", - RowBox[{"1", "-", "w"}]], - FractionBox["1", "S"]}], ")"}], "w"]}]}], "\n", - RowBox[{ - RowBox[{"X", "[", - RowBox[{"y_", ",", "S_", ",", "w_"}], "]"}], ":=", - RowBox[{ - FractionBox["w", - RowBox[{"1", "-", "w"}]], - FractionBox["1", "S"], "y"}]}], "\n", - RowBox[{ - RowBox[{"Y", "[", - RowBox[{"x_", ",", "S_", ",", "w_"}], "]"}], ":=", - RowBox[{ - FractionBox[ - RowBox[{"1", "-", "w"}], "w"], "S", " ", "x"}]}]}], "Code", - CellChangeTimes->{{3.911911651706427*^9, 3.9119117138210907`*^9}, { - 3.911911789108042*^9, 3.911911844681787*^9}, {3.911911892241302*^9, - 3.911911901341136*^9}, {3.91191211289227*^9, 3.911912147909412*^9}, { - 3.911912238579266*^9, 3.911912318380584*^9}, {3.9119123799914913`*^9, - 3.911912447202764*^9}, {3.9119132862667913`*^9, 3.911913339991631*^9}, { - 3.911913462657144*^9, 3.9119134680216084`*^9}}, - CellLabel-> - "In[455]:=",ExpressionUUID->"7253b091-e52f-418b-a1c8-287d88022e6a"] -}, Open ]], - -Cell[CellGroupData[{ - -Cell[TextData[{ - "This is the price function (we could write this out as ", - Cell[BoxData[ - FormBox[ - SubscriptBox["P", "X"], TraditionalForm]],ExpressionUUID-> - "2101af69-5077-45c8-b151-8649e17c5f95"], - " and ", - Cell[BoxData[ - FormBox[ - SubscriptBox["P", "Y"], TraditionalForm]],ExpressionUUID-> - "b5427b3a-6ad2-4ac3-884c-35e3a778bde4"], - " if needed)" -}], "Subsubsection", - CellChangeTimes->{{3.911912491041603*^9, 3.911912499928299*^9}, { - 3.911912547710608*^9, - 3.911912559677248*^9}},ExpressionUUID->"c79752c3-b802-42fd-9612-\ -2c9ed31365e8"], - -Cell[BoxData[ - RowBox[{ - RowBox[{"P", "[", - RowBox[{"x_", ",", "y_", ",", "w_"}], "]"}], ":=", - RowBox[{ - FractionBox["w", - RowBox[{"1", "-", "w"}]], - FractionBox["y", "x"]}]}]], "Code", - CellChangeTimes->{{3.911912501940172*^9, 3.911912546049423*^9}, { - 3.911912581390644*^9, 3.911912592262026*^9}}, - CellLabel-> - "In[460]:=",ExpressionUUID->"18a899a0-963a-45c4-a7a0-9fbeda760047"] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Then we have the trading function", "Subsubsection", - CellChangeTimes->{{3.9119125999574957`*^9, - 3.9119126032787*^9}},ExpressionUUID->"ccc19f67-4212-4173-8f38-591d9c869a78"], - -Cell[BoxData[ - RowBox[{ - RowBox[{"\[CurlyPhi]", "[", - RowBox[{"x_", ",", "y_", ",", "L_", ",", "w_"}], "]"}], ":=", - RowBox[{ - RowBox[{ - SuperscriptBox["x", "w"], - SuperscriptBox["y", - RowBox[{"1", "-", "w"}]]}], "-", "L"}]}]], "Code", - CellChangeTimes->{{3.911912609075673*^9, 3.911912634724598*^9}}, - CellLabel-> - "In[461]:=",ExpressionUUID->"25e959b2-4561-4b40-a658-c7cf56341acc"] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["\<\ -Let\[CloseCurlyQuote]s initialize a pool with some constants and some \ -liquidity.\ -\>", "Section", - CellChangeTimes->{{3.9119126417440157`*^9, - 3.911912651277295*^9}},ExpressionUUID->"8ecbbf5d-d7c2-4753-8dae-\ -ccd81d3ed5db"], - -Cell[CellGroupData[{ - -Cell["\<\ -First, let\[CloseCurlyQuote]s set the parameters for our curve, including the \ -fee parameter \[Gamma]\ -\>", "Subsection", - CellChangeTimes->{{3.91191265333202*^9, - 3.911912664215665*^9}},ExpressionUUID->"3778290c-33c8-4669-bd57-\ -a54efc82c76a"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - RowBox[{"{", - RowBox[{ - SubscriptBox["w", "0"], ",", " ", - SubscriptBox["\[Gamma]", "0"]}], "}"}], " ", "=", " ", - RowBox[{"{", - RowBox[{ - FractionBox["1", "2"], ",", "0.997"}], "}"}]}], ";"}], "\n", - RowBox[{"Assert", "[", - RowBox[{"0", "<=", - SubscriptBox["w", "0"], "<=", "1"}], "]"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["w", "0"], ",", " ", - "\"\<\!\(\*SubscriptBox[\(w\), \(0\)]\) = \>\""}], "]"}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["\[Gamma]", "0"], ",", " ", - "\"\<\!\(\*SubscriptBox[\(\[Gamma]\), \(0\)]\) = \>\""}], "]"}], - ";"}]}], "Code", - CellChangeTimes->{{3.9119126661143427`*^9, 3.911912745472548*^9}, { - 3.913751197438278*^9, 3.913751203946327*^9}, {3.916755641867735*^9, - 3.916755653408431*^9}, {3.916758352270589*^9, 3.916758352990745*^9}, { - 3.916758461710663*^9, 3.916758485200482*^9}, {3.9167630696181583`*^9, - 3.9167630711333857`*^9}, {3.9168506991445208`*^9, 3.916850699759934*^9}, { - 3.917375527833433*^9, 3.917375530306773*^9}}, - CellLabel-> - "In[462]:=",ExpressionUUID->"a277fd9d-36f8-4eee-9601-665001bbe972"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"\\!\\(\\*SubscriptBox[\\(w\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", - FractionBox["1", "2"]}]], "Echo", - CellChangeTimes->{ - 3.917380125782238*^9},ExpressionUUID->"68592da4-571c-4aa8-8d3d-\ -455b2513c8a4"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"\\!\\(\\*SubscriptBox[\\(\[Gamma]\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", "0.997`"}]], "Echo", - CellChangeTimes->{ - 3.917380125820305*^9},ExpressionUUID->"c83c0b22-8798-4d2a-923c-\ -a69c08f2ae5b"] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["\<\ -Now, let\[CloseCurlyQuote]s set the initial liquidity by providing an amount \ -of X and a price S.\ -\>", "Subsection", - CellChangeTimes->{{3.911912758416833*^9, - 3.911912770460993*^9}},ExpressionUUID->"0e4b0b5f-de16-4a42-af35-\ -cb7f8c5a845c"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - RowBox[{ - RowBox[{"{", - RowBox[{ - SubscriptBox["x", "0"], ",", - SubscriptBox["S", "0"]}], "}"}], " ", "=", " ", - RowBox[{"{", - RowBox[{"1000000", ",", " ", "2"}], "}"}]}], ";"}], " "}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["x", "0"], ",", " ", - "\"\\""}], "]"}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["S", "0"], ",", " ", - "\"\<\!\(\*SubscriptBox[\(S\), \(0\)]\) = \>\""}], "]"}], ";"}]}], "Code",\ - - CellChangeTimes->{{3.91375121715248*^9, 3.913751217262199*^9}, { - 3.9167584720251627`*^9, 3.916758473473184*^9}, {3.916763078664383*^9, - 3.916763079312771*^9}, {3.916850486059314*^9, 3.916850517153616*^9}, { - 3.9173801291544447`*^9, 3.917380133892503*^9}, {3.9173803308316917`*^9, - 3.9173803309348583`*^9}}, - CellLabel-> - "In[489]:=",ExpressionUUID->"fabf4afc-21e6-47a6-b63d-ba788b915987"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The initial X-reserve balance is: \ -\\!\\(\\*SubscriptBox[\\(x\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", "1000000"}]], "Echo", - CellChangeTimes->{ - 3.917380331474142*^9},ExpressionUUID->"bf8f8109-20ba-441c-ade2-\ -43d6f6b2fe57"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"\\!\\(\\*SubscriptBox[\\(S\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", "2"}]], "Echo", - CellChangeTimes->{ - 3.917380331512559*^9},ExpressionUUID->"823915e8-7405-4278-b71a-\ -0010f320062f"] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["\<\ -From this, let\[CloseCurlyQuote]s see what we will get for the initial amount \ -of Y and L.\ -\>", "Subsubsection", - CellChangeTimes->{{3.911912799855054*^9, - 3.911912808975162*^9}},ExpressionUUID->"d14796ee-6661-403b-a067-\ -2e1c5a6c6211"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - RowBox[{ - RowBox[{"{", - RowBox[{ - SubscriptBox["L", "0"], ",", " ", - SubscriptBox["y", "0"]}], "}"}], " ", "=", " ", - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["L", "X"], "[", - RowBox[{ - SubscriptBox["x", "0"], ",", - SubscriptBox["S", "0"], ",", - SubscriptBox["w", "0"]}], "]"}], ",", " ", - RowBox[{"Y", "[", - RowBox[{ - SubscriptBox["x", "0"], ",", - SubscriptBox["S", "0"], ",", - SubscriptBox["w", "0"]}], "]"}]}], "}"}]}], ";"}], " "}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - SubscriptBox["L", "0"], ",", " ", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - SubscriptBox["y", "0"], ",", " ", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}]}], "Code", - CellChangeTimes->{{3.911912822320621*^9, 3.911912827848645*^9}, { - 3.911912883452937*^9, 3.9119128835495768`*^9}}, - CellLabel-> - "In[491]:=",ExpressionUUID->"ee083f7c-4161-4e24-8675-42d8b5ffacbe"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The initial liquidity is: \\!\\(\\*SubscriptBox[\\(L\\), \ -\\(0\\)]\\) = \"\>", - "EchoLabel"], " ", - "1.41421356237309504880168872420969807856899608`18.*^6"}]], "Echo", - CellChangeTimes->{ - 3.917380332895756*^9},ExpressionUUID->"70b47f11-51c6-4be1-a810-\ -240f6412d20e"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The initial Y-reserve balance is: \ -\\!\\(\\*SubscriptBox[\\(y\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", "2.`18.*^6"}]], "Echo", - CellChangeTimes->{ - 3.9173803329295397`*^9},ExpressionUUID->"512c7c1e-173f-4bd0-961f-\ -0cc5e61586e9"] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Let\[CloseCurlyQuote]s check that the prices are correct after the \ -fact.", "Subsubsection", - CellChangeTimes->{{3.911912905875383*^9, - 3.911912912599833*^9}},ExpressionUUID->"0a95fd1e-5759-46f5-b752-\ -6b4f74d4268c"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{"Assert", "[", - RowBox[{ - RowBox[{"P", "[", - RowBox[{ - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["w", "0"]}], "]"}], " ", "==", " ", - SubscriptBox["S", "0"]}], "]"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"P", "[", - RowBox[{ - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["w", "0"]}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}]}], "Code", - CellChangeTimes->{{3.911912932500325*^9, 3.911912980651959*^9}}, - CellLabel-> - "In[493]:=",ExpressionUUID->"9b2bc5ef-d095-45dd-ac2b-15f02684ac4f"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The initial price is: P = \"\>", - "EchoLabel"], " ", "2"}]], "Echo", - CellChangeTimes->{ - 3.917380335443514*^9},ExpressionUUID->"af9de153-25ff-415c-9a37-\ -4f366ff8ebbe"] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["\<\ -Just to verify that we could have done this the other way, and show the flow, \ -let\[CloseCurlyQuote]s do that real fast.\ -\>", "Subsubsection", - CellChangeTimes->{{3.911913367118602*^9, - 3.911913377190076*^9}},ExpressionUUID->"f59add3e-9736-413f-b760-\ -d953f4b2de71"], - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - RowBox[{"{", - RowBox[{ - SubscriptBox["L", - SubscriptBox["0", "y"]], ",", " ", - SubscriptBox["x", - SubscriptBox["0", "y"]]}], "}"}], " ", "=", " ", - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["L", "Y"], "[", - RowBox[{ - SubscriptBox["y", "0"], ",", - SubscriptBox["S", "0"], ",", - SubscriptBox["w", "0"]}], "]"}], ",", " ", - RowBox[{"X", "[", - RowBox[{ - SubscriptBox["y", "0"], ",", - SubscriptBox["S", "0"], ",", - SubscriptBox["w", "0"]}], "]"}]}], "}"}]}], ";"}], "\n", - RowBox[{ - RowBox[{"Assert", "[", - RowBox[{ - RowBox[{"{", - RowBox[{ - SubscriptBox["L", - SubscriptBox["0", "y"]], ",", - SubscriptBox["x", - SubscriptBox["0", "y"]]}], "}"}], " ", "==", " ", - RowBox[{"{", - RowBox[{ - SubscriptBox["L", "0"], ",", - SubscriptBox["x", "0"]}], "}"}]}], "]"}], ";"}]}], "Code", - CellChangeTimes->{{3.911913388555017*^9, 3.911913437262168*^9}, - 3.9119134968996763`*^9}, - CellLabel-> - "In[495]:=",ExpressionUUID->"5ace6d65-c46d-491e-a7b3-d364ee7f21fb"] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Swapping", "Section", - CellChangeTimes->{{3.911913506803228*^9, - 3.911913507641082*^9}},ExpressionUUID->"0aa1aa4a-a222-4348-9a33-\ -bdcf246c0ec1"], - -Cell[CellGroupData[{ - -Cell["Now we need to set up the swap logic.", "Subsection", - CellChangeTimes->{{3.911913509615294*^9, 3.911913519388177*^9}, - 3.911913612736845*^9},ExpressionUUID->"a09de9d8-3ec0-4d13-8819-\ -089fc369fa6e"], - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{"\[CapitalDelta]_", ",", "\[Gamma]_"}], "]"}], " ", ":=", " ", - RowBox[{ - RowBox[{"(", - RowBox[{"1", "-", "\[Gamma]"}], ")"}], "\[CapitalDelta]"}]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["\[Delta]", "Liq"], "[", - RowBox[{"\[CapitalDelta]_", ",", "R_", ",", "L_", ",", "\[Gamma]_"}], - "]"}], " ", ":=", " ", - RowBox[{ - FractionBox["1", "2"], - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{"\[CapitalDelta]", ",", "\[Gamma]"}], "]"}], - FractionBox["L", "R"]}]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - "\[CapitalDelta]_", ",", "x_", ",", "y_", ",", "L_", ",", "w_", ",", - "\[Gamma]_"}], "]"}], " ", ":=", " ", - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - FractionBox[ - RowBox[{"L", "+", - RowBox[{ - SubscriptBox["\[Delta]", "Liq"], "[", - RowBox[{"\[CapitalDelta]", ",", "y", ",", "L", ",", "\[Gamma]"}], - "]"}]}], - SuperscriptBox[ - RowBox[{"(", - RowBox[{"y", "+", "\[CapitalDelta]"}], ")"}], - RowBox[{"1", "-", "w"}]]], ")"}], - FractionBox["1", "w"]], "-", "x"}]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - "\[CapitalDelta]_", ",", "x_", ",", "y_", ",", "L_", ",", "w_", ",", - "\[Gamma]_"}], "]"}], " ", ":=", " ", - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - FractionBox[ - RowBox[{"L", "+", - RowBox[{ - SubscriptBox["\[Delta]", "Liq"], "[", - RowBox[{"\[CapitalDelta]", ",", "x", ",", "L", ",", "\[Gamma]"}], - "]"}]}], - SuperscriptBox[ - RowBox[{"(", - RowBox[{"x", "+", "\[CapitalDelta]"}], ")"}], "w"]], ")"}], - FractionBox["1", - RowBox[{"1", "-", "w"}]]], "-", "y"}]}]}], "Code", - CellChangeTimes->{{3.911913527155746*^9, 3.9119135334049797`*^9}, { - 3.911913609956356*^9, 3.911913618625647*^9}, {3.9119138718346777`*^9, - 3.911914007786831*^9}, {3.911914050154006*^9, 3.911914216429152*^9}, - 3.911914432257678*^9, {3.911914740377337*^9, 3.911914765079064*^9}, { - 3.9119148556108437`*^9, 3.91191486213737*^9}, {3.91191511989001*^9, - 3.911915138754508*^9}, {3.911915179500216*^9, 3.911915240429996*^9}, { - 3.9137510946925173`*^9, 3.913751129833908*^9}, {3.913751233158678*^9, - 3.913751361923436*^9}, {3.913803336011858*^9, 3.9138033400453243`*^9}, { - 3.916750092177647*^9, 3.916750092710829*^9}, {3.917375550285816*^9, - 3.917375553361146*^9}, {3.917375646968779*^9, 3.917375651113062*^9}, { - 3.9173757221234703`*^9, 3.9173758146366262`*^9}, {3.917380235352436*^9, - 3.917380256042615*^9}, {3.917380371447682*^9, 3.917380373267902*^9}}, - CellLabel-> - "In[507]:=",ExpressionUUID->"6c9eba4a-50a0-4c93-b07c-3139817809de"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{"0.1", ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], "\n", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{"0.1", ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], "Code", - CellChangeTimes->{{3.9173801538368683`*^9, 3.917380182502496*^9}, { - 3.917380406138091*^9, 3.917380427451881*^9}}, - CellLabel-> - "In[512]:=",ExpressionUUID->"57d57c6e-b361-4057-8fe3-86b50c9464e4"], - -Cell[BoxData[ - RowBox[{"-", "0.04984999739099294`"}]], "Output", - CellChangeTimes->{ - 3.917380183658939*^9, 3.917380259953665*^9, 3.917380340546103*^9, { - 3.917380375623798*^9, 3.917380379003302*^9}, 3.9173804285014133`*^9}, - CellLabel-> - "Out[512]=",ExpressionUUID->"7056df78-c626-4190-8317-ff534587aad6"], - -Cell[BoxData[ - RowBox[{"-", "0.19939997978508472`"}]], "Output", - CellChangeTimes->{ - 3.917380183658939*^9, 3.917380259953665*^9, 3.917380340546103*^9, { - 3.917380375623798*^9, 3.917380379003302*^9}, 3.91738042850327*^9}, - CellLabel-> - "Out[513]=",ExpressionUUID->"a4cac5d4-d372-497a-97d5-c6f6319bc812"] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Arbitrage", "Section", - CellChangeTimes->{{3.9119142472576113`*^9, - 3.911914255664398*^9}},ExpressionUUID->"2af33c95-75fa-4c2a-987e-\ -0c0efa8a1771"], - -Cell[TextData[{ - "We will assume there is some external price ", - Cell[BoxData[ - FormBox[ - SubscriptBox["S", "ext"], TraditionalForm]],ExpressionUUID-> - "8e70a992-445b-45fa-8ff6-75d441c5609b"], - " that we are given and decide whether or not to perform an arbitrage and, \ -if so, to get the optimal trade size. That is, the trade that gives the \ -arbitrageur maximal profit." -}], "Text", - CellChangeTimes->{{3.911914264985302*^9, - 3.91191432874524*^9}},ExpressionUUID->"72430652-d39e-479e-8fb5-\ -8c2568d7c943"], - -Cell[CellGroupData[{ - -Cell[TextData[{ - "We will need the marginal price ", - Cell[BoxData[ - FormBox[ - SubscriptBox["P", "M"], TraditionalForm]],ExpressionUUID-> - "99042f72-0eb5-4f69-870e-9076c4359cec"], - " of a swap to compute the optimal arbitrages and a profit calculation ", - Cell[BoxData[ - FormBox[ - SubscriptBox["V", "A"], TraditionalForm]],ExpressionUUID-> - "8e6910c5-e4d2-40af-b100-2c1e2d5d76b5"] -}], "Subsubsection", - CellChangeTimes->{{3.911914330823928*^9, - 3.9119143508811502`*^9}},ExpressionUUID->"a8656622-88c3-4ada-82e5-\ -d33556722b56"], - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{"dX_", ",", "dY_"}], "]"}], " ", ":=", " ", - FractionBox[ - RowBox[{"-", "dY"}], "dX"]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["V", "A"], "[", - RowBox[{"Pm_", ",", "Pext_", ",", "\[CapitalDelta]_"}], "]"}], " ", ":=", - " ", - RowBox[{ - RowBox[{"(", - RowBox[{"Pm", " ", "-", " ", "Pext"}], ")"}], - "\[CapitalDelta]"}]}]}], "Code", - CellLabel-> - "In[267]:=",ExpressionUUID->"8864b3f3-1b36-4dcd-99b8-7a357f5a3a30"] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Lower External Price:", "Subsection", - CellChangeTimes->{{3.911914361205379*^9, - 3.9119143742418222`*^9}},ExpressionUUID->"f9739415-ba82-4653-b842-\ -33b37c1cd286"], - -Cell[CellGroupData[{ - -Cell[TextData[{ - "We will let ", - Cell[BoxData[ - FormBox[ - SubscriptBox["O", "X"], TraditionalForm]],ExpressionUUID-> - "02f62581-159d-4887-b98d-1428c55170a9"], - " be the optimal amount of X token to tender to achieve the maximal \ -arbitrage profit." -}], "Subsubsection", - CellChangeTimes->{{3.911914379462582*^9, - 3.911914392960053*^9}},ExpressionUUID->"905228e2-efe5-43aa-9780-\ -0b193149ea3d"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - SubscriptBox["S", "ext"], " ", "=", " ", "0.8"}], ";", " ", - RowBox[{"Assert", "[", - RowBox[{ - SubscriptBox["S", "ext"], " ", "<", " ", - SubscriptBox["S", "0"]}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Lower"], "[", "in_", "]"}], " ", ":=", " ", - RowBox[{ - SubscriptBox["V", "A"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{"in", ",", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{"in", ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], "]"}], ",", " ", - SubscriptBox["S", "ext"], ",", " ", "in"}], "]"}]}], "\n", - RowBox[{"Plot", "[", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Lower"], "[", "v", "]"}], ",", " ", - RowBox[{"{", - RowBox[{"v", ",", "0", ",", "0.2"}], "}"}]}], "]"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{ - SubscriptBox["O", "X"], " ", "=", " ", - RowBox[{"N", "[", - RowBox[{ - RowBox[{"ArgMax", "[", - RowBox[{ - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Lower"], "[", "x", "]"}], ",", " ", - RowBox[{"0", "<=", "x", "<=", "5"}]}], "}"}], ",", " ", "x"}], - "]"}], ",", "18"}], "]"}]}], ";"}], " "}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - SubscriptBox["O", "X"], ",", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], ",", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], " ", "+", " ", - SubscriptBox["O", "X"]}], ",", " ", - RowBox[{ - SubscriptBox["y", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}]}], "}"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], "]"}], ",", " ", - "\"\\ -\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["P", "F"], " ", "=", " ", - RowBox[{"P", "[", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], " ", "+", " ", - SubscriptBox["O", "X"]}], ",", " ", - RowBox[{ - SubscriptBox["y", "0"], "+", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - SubscriptBox["w", "0"]}], "]"}]}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - SubscriptBox["P", "F"], ",", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"D", "[", - RowBox[{ - RowBox[{ - SubscriptBox["V", "A"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{"v", ",", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - "v", ",", "x", ",", "y", ",", "L", ",", "w", ",", "\[Gamma]"}], - "]"}]}], "]"}], ",", " ", "S", ",", " ", "v"}], "]"}], ",", " ", - "v"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], - "\n", - RowBox[{"(*", " ", - RowBox[{ - "Check", " ", "that", " ", "the", " ", "trading", " ", "function", " ", - "is", " ", "invariant", " ", "under", " ", "the", " ", "swap"}], " ", - "*)"}]}], "\n", - RowBox[{ - RowBox[{"Assert", "[", - RowBox[{ - RowBox[{"Abs", "[", - RowBox[{"\[CurlyPhi]", "[", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], " ", "+", " ", - SubscriptBox["O", "X"]}], ",", " ", - RowBox[{ - SubscriptBox["y", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - RowBox[{ - SubscriptBox["L", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[Delta]", "Liq"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - SubscriptBox["w", "0"]}], "]"}], "]"}], " ", "<", " ", - SuperscriptBox["10", - RowBox[{"-", "15"}]]}], "]"}], "\n"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"check", "[", - RowBox[{ - "v_", ",", "x_", ",", "y_", ",", "L_", ",", "S_", ",", "w_", ",", - "\[Gamma]_"}], "]"}], ":=", - RowBox[{ - RowBox[{"-", "S"}], "+", - FractionBox[ - RowBox[{ - RowBox[{"(", - RowBox[{ - RowBox[{"L", " ", "w", " ", "x", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["y", "x"], ")"}], "w"]}], "+", - RowBox[{ - RowBox[{"(", - RowBox[{"v", "-", - RowBox[{"v", " ", "w"}], "+", "x"}], ")"}], " ", "y", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}], " ", - SuperscriptBox[ - RowBox[{"(", - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}], - RowBox[{"-", "w"}]], " ", - RowBox[{"(", - RowBox[{"L", "-", - RowBox[{"v", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["y", "x"], ")"}], - RowBox[{"1", "-", "w"}]], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}], - ")"}], - FractionBox["1", - RowBox[{"1", "-", "w"}]]]}], - RowBox[{ - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "w"}], ")"}], " ", - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}], " ", - RowBox[{"(", - RowBox[{ - RowBox[{ - RowBox[{"-", "L"}], " ", "x", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["y", "x"], ")"}], "w"]}], "+", - RowBox[{"v", " ", "y", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}]]}]}], - ";"}], "\n", - RowBox[{"check", "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["S", "ext"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"num", "[", - RowBox[{ - "v_", ",", "x_", ",", "y_", ",", "L_", ",", "S_", ",", "w_", ",", - "\[Gamma]_"}], "]"}], ":=", - RowBox[{ - RowBox[{"(", - RowBox[{ - RowBox[{"L", " ", "w", " ", "x", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["y", "x"], ")"}], "w"]}], "+", - RowBox[{ - RowBox[{"(", - RowBox[{"v", "-", - RowBox[{"v", " ", "w"}], "+", "x"}], ")"}], " ", "y", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}], " ", - SuperscriptBox[ - RowBox[{"(", - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}], - RowBox[{"-", "w"}]], " ", - RowBox[{"(", - RowBox[{"L", "-", - RowBox[{"v", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["y", "x"], ")"}], - RowBox[{"1", "-", "w"}]], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}], ")"}], - - FractionBox["1", - RowBox[{"1", "-", "w"}]]]}]}], ";"}], "\n", - RowBox[{"num", "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["S", "ext"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"denom", "[", - RowBox[{ - "v_", ",", "x_", ",", "y_", ",", "L_", ",", "S_", ",", "w_", ",", - "\[Gamma]_"}], "]"}], ":=", - RowBox[{ - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "w"}], ")"}], " ", - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}], " ", - RowBox[{"(", - RowBox[{ - RowBox[{ - RowBox[{"-", "L"}], " ", "x", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["y", "x"], ")"}], "w"]}], "+", - RowBox[{"v", " ", "y", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}]}], - ";"}], "\n", - RowBox[{"denom", "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["S", "ext"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], "Code", - CellChangeTimes->{{3.911914422645937*^9, 3.911914555345026*^9}, { - 3.911914588999901*^9, 3.91191460090387*^9}, {3.911914673363236*^9, - 3.911914711242825*^9}, {3.911914790397727*^9, 3.911914808449383*^9}, { - 3.911914911266861*^9, 3.9119149253646173`*^9}, {3.9119153099803047`*^9, - 3.911915356848312*^9}, {3.911915395365718*^9, 3.911915397737707*^9}, { - 3.911915436220303*^9, 3.911915514601404*^9}, {3.9119162095262337`*^9, - 3.9119162714050093`*^9}, {3.911930073685734*^9, 3.9119300942727833`*^9}, - 3.9119301712068167`*^9, {3.916750125402011*^9, 3.916750152368066*^9}, { - 3.9167502280613003`*^9, 3.916750274923284*^9}, {3.916750440937388*^9, - 3.916750629671793*^9}, {3.916750811189536*^9, 3.9167508209424*^9}, { - 3.916765121182337*^9, 3.916765152172139*^9}, {3.9168278451701593`*^9, - 3.9168278845934877`*^9}, {3.9168279434370823`*^9, - 3.9168280951568737`*^9}, {3.9168283033725853`*^9, 3.916828311498711*^9}, { - 3.916828426976664*^9, 3.9168284392552032`*^9}, 3.916828472810547*^9, { - 3.916828513238497*^9, 3.9168287199450808`*^9}, {3.916834831289481*^9, - 3.916834911904212*^9}, {3.9168506147106237`*^9, 3.9168506234890203`*^9}, - 3.916850658582822*^9, 3.9173761160328093`*^9, {3.917376475745462*^9, - 3.9173764910618362`*^9}}, - CellLabel-> - "In[303]:=",ExpressionUUID->"1a8d1d1f-d7f4-4461-a836-4d4571ea6392"], - -Cell[BoxData[ - GraphicsBox[{{{}, {}, - TagBox[ - {RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[ - 1.], LineBox[CompressedData[" -1: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 -pfIv8tcy8X815bsR - "]]}, - Annotation[#, "Charting`Private`Tag$52295#1"]& ]}, {}}, - AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948], - Axes->{True, True}, - AxesLabel->{None, None}, - AxesOrigin->{0, 0}, - DisplayFunction->Identity, - Frame->{{False, False}, {False, False}}, - FrameLabel->{{None, None}, {None, None}}, - FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, - GridLines->{None, None}, - GridLinesStyle->Directive[ - GrayLevel[0.5, 0.4]], - ImagePadding->All, - Method->{ - "DefaultBoundaryStyle" -> Automatic, - "DefaultGraphicsInteraction" -> { - "Version" -> 1.2, "TrackMousePosition" -> {True, False}, - "Effects" -> { - "Highlight" -> {"ratio" -> 2}, "HighlightPoint" -> {"ratio" -> 2}, - "Droplines" -> { - "freeformCursorMode" -> True, - "placement" -> {"x" -> "All", "y" -> "None"}}}}, "DefaultMeshStyle" -> - AbsolutePointSize[6], "ScalingFunctions" -> None, - "CoordinatesToolOptions" -> {"DisplayFunction" -> ({ - (Identity[#]& )[ - Part[#, 1]], - (Identity[#]& )[ - Part[#, 2]]}& ), "CopiedValueFunction" -> ({ - (Identity[#]& )[ - Part[#, 1]], - (Identity[#]& )[ - Part[#, 2]]}& )}}, - PlotRange->{{0, 0.2}, {0., 0.010520148912324685`}}, - PlotRangeClipping->True, - PlotRangePadding->{{ - Scaled[0.02], - Scaled[0.02]}, { - Scaled[0.05], - Scaled[0.05]}}, - Ticks->{Automatic, Automatic}]], "Output", - CellChangeTimes->{{3.916850668010118*^9, 3.916850703273357*^9}, - 3.917375605555485*^9, 3.917375834699234*^9, 3.917376117017376*^9, - 3.91737615836895*^9, {3.917376442233181*^9, 3.9173764500649357`*^9}, - 3.917376514200519*^9}, - CellLabel-> - "Out[305]=",ExpressionUUID->"986f7163-cf03-4de4-b998-9538f3a4c8bc"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The optimal amount of X to tender is: \\!\\(\\*SubscriptBox[\\(\ -\[CapitalDelta]\\), \\(X\\)]\\) = \"\>", - "EchoLabel"], " ", "0.11467362047981638`"}]], "Echo", - CellChangeTimes->{ - 3.91737651422582*^9},ExpressionUUID->"6394a97c-351e-437d-8c02-9b0642aacf09"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The amount out is: \\!\\(\\*SubscriptBox[\\(\[CapitalDelta]\\), \ -\\(Y\\)]\\) = \"\>", - "EchoLabel"], " ", - RowBox[{"-", "0.10225904543925524`"}]}]], "Echo", - CellChangeTimes->{ - 3.917376514233597*^9},ExpressionUUID->"5e6b589a-5de5-4f17-9268-\ -a35f46b410b1"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The resulting reserves are: (\\!\\(\\*SubscriptBox[\\(x\\), \ -\\(1\\)]\\),\\!\\(\\*SubscriptBox[\\(y\\), \\(1\\)]\\)) = \"\>", - "EchoLabel"], " ", - RowBox[{"{", - RowBox[{"1.1146736204798164`", ",", "0.8977409545607448`"}], - "}"}]}]], "Echo", - CellChangeTimes->{ - 3.917376514253421*^9},ExpressionUUID->"957d146b-e63f-416f-a7cb-\ -8c6b69727396"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The marginal price paid was: \\!\\(\\*SubscriptBox[\\(P\\), \ -\\(M\\)]\\) = \"\>", - "EchoLabel"], " ", "0.8917399224981631`"}]], "Echo", - CellChangeTimes->{ - 3.917376514261448*^9},ExpressionUUID->"a6375d85-fb17-4296-9761-\ -db2b17a953c6"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The final price of the pool is: P = \"\>", - "EchoLabel"], " ", "0.8053845879785941`"}]], "Echo", - CellChangeTimes->{ - 3.91737651427712*^9},ExpressionUUID->"ea158521-8811-4328-bda0-60677eb48800"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The equation to do root finding with is: \"\>", - "EchoLabel"], " ", - RowBox[{ - RowBox[{"-", "S"}], "-", - FractionBox[ - RowBox[{ - RowBox[{"-", "y"}], "+", - SuperscriptBox[ - RowBox[{"(", - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}], - RowBox[{"-", "w"}]], " ", - RowBox[{"(", - RowBox[{"L", "+", - FractionBox[ - RowBox[{"L", " ", "v", " ", - RowBox[{"(", - RowBox[{"1", "-", "\[Gamma]"}], ")"}]}], "x"]}], ")"}]}], ")"}], - - FractionBox["1", - RowBox[{"1", "-", "w"}]]]}], "v"], "+", - RowBox[{"v", " ", - RowBox[{"(", - RowBox[{ - FractionBox[ - RowBox[{ - RowBox[{"-", "y"}], "+", - SuperscriptBox[ - RowBox[{"(", - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}], - RowBox[{"-", "w"}]], " ", - RowBox[{"(", - RowBox[{"L", "+", - FractionBox[ - RowBox[{"L", " ", "v", " ", - RowBox[{"(", - RowBox[{"1", "-", "\[Gamma]"}], ")"}]}], "x"]}], ")"}]}], - ")"}], - FractionBox["1", - RowBox[{"1", "-", "w"}]]]}], - SuperscriptBox["v", "2"]], "-", - RowBox[{ - FractionBox["1", - RowBox[{"v", " ", - RowBox[{"(", - RowBox[{"1", "-", "w"}], ")"}]}]], - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}], - RowBox[{"-", "w"}]], " ", - RowBox[{"(", - RowBox[{"L", "+", - FractionBox[ - RowBox[{"L", " ", "v", " ", - RowBox[{"(", - RowBox[{"1", "-", "\[Gamma]"}], ")"}]}], "x"]}], ")"}]}], - ")"}], - RowBox[{ - RowBox[{"-", "1"}], "+", - FractionBox["1", - RowBox[{"1", "-", "w"}]]}]], " ", - RowBox[{"(", - RowBox[{ - RowBox[{ - RowBox[{"-", "w"}], " ", - SuperscriptBox[ - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}], - RowBox[{ - RowBox[{"-", "1"}], "-", "w"}]], " ", - RowBox[{"(", - RowBox[{"L", "+", - FractionBox[ - RowBox[{"L", " ", "v", " ", - RowBox[{"(", - RowBox[{"1", "-", "\[Gamma]"}], ")"}]}], "x"]}], ")"}]}], "+", - FractionBox[ - RowBox[{"L", " ", - SuperscriptBox[ - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}], - RowBox[{"-", "w"}]], " ", - RowBox[{"(", - RowBox[{"1", "-", "\[Gamma]"}], ")"}]}], "x"]}], ")"}]}]}]}], - ")"}]}]}]}]], "Echo", - CellChangeTimes->{ - 3.917376514286028*^9},ExpressionUUID->"4c5f61bd-03b7-4432-a272-\ -0f26503b2dfb"] -}, Open ]], - -Cell[BoxData[ - RowBox[{"-", "5.336339703454485`*^-9"}]], "Output", - CellChangeTimes->{{3.916850668010118*^9, 3.916850703273357*^9}, - 3.917375605555485*^9, 3.917375834699234*^9, 3.917376117017376*^9, - 3.91737615836895*^9, {3.917376442233181*^9, 3.9173764500649357`*^9}, - 3.917376514301814*^9}, - CellLabel-> - "Out[315]=",ExpressionUUID->"a1f818a7-7515-42f6-8412-5023424e7584"], - -Cell[BoxData["0.4460228336084214`"], "Output", - CellChangeTimes->{{3.916850668010118*^9, 3.916850703273357*^9}, - 3.917375605555485*^9, 3.917375834699234*^9, 3.917376117017376*^9, - 3.91737615836895*^9, {3.917376442233181*^9, 3.9173764500649357`*^9}, - 3.917376514303438*^9}, - CellLabel-> - "Out[317]=",ExpressionUUID->"53eae298-6178-4ff5-afd7-6d8d8a6d15d1"], - -Cell[BoxData["0.5575285457294789`"], "Output", - CellChangeTimes->{{3.916850668010118*^9, 3.916850703273357*^9}, - 3.917375605555485*^9, 3.917375834699234*^9, 3.917376117017376*^9, - 3.91737615836895*^9, {3.917376442233181*^9, 3.9173764500649357`*^9}, - 3.91737651430447*^9}, - CellLabel-> - "Out[319]=",ExpressionUUID->"8a5a30f2-553b-4cde-86b0-6f924840169e"] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Raise External Price:", "Subsection", - CellChangeTimes->{{3.9119155525165854`*^9, - 3.911915558137148*^9}},ExpressionUUID->"f642d822-e56a-4daf-87b3-\ -4a7c12588060"], - -Cell[CellGroupData[{ - -Cell[TextData[{ - "Let ", - Cell[BoxData[ - FormBox[ - SubscriptBox["O", "Y"], TraditionalForm]],ExpressionUUID-> - "eaba641e-4e33-4917-a83f-d6c2123511de"], - " be the optimal amount of Y token to tender to get max arbitrage profit." -}], "Subsubsection", - CellChangeTimes->{{3.91191556049035*^9, - 3.911915572188102*^9}},ExpressionUUID->"53a95604-bde4-406e-8c5f-\ -f440053636d6"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - SubscriptBox["S", "ext"], " ", "=", " ", "1.2"}], ";", " ", - RowBox[{"Assert", "[", - RowBox[{ - SubscriptBox["S", "ext"], " ", ">", " ", - SubscriptBox["S", "0"]}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Raise"], "[", "in_", "]"}], " ", ":=", " ", - RowBox[{ - SubscriptBox["V", "A"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{"in", ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], ",", "in"}], "]"}], ",", " ", - - SubscriptBox["S", "ext"], ",", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{"in", ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], "]"}]}], "\n", - RowBox[{"Plot", "[", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Raise"], "[", "v", "]"}], ",", " ", - RowBox[{"{", - RowBox[{"v", ",", "0", ",", "0.2"}], "}"}]}], "]"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{ - SubscriptBox["O", "Y"], " ", "=", " ", - RowBox[{"ArgMax", "[", - RowBox[{ - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Raise"], "[", "y", "]"}], ",", " ", - RowBox[{"0", "<=", "y", "<=", "5"}]}], "}"}], ",", " ", "y"}], - "]"}]}], ";"}], " "}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], ",", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - RowBox[{ - SubscriptBox["y", "0"], " ", "+", " ", - SubscriptBox["O", "Y"]}]}], "}"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], ",", - SubscriptBox["O", "Y"]}], "]"}], ",", " ", - "\"\\ -\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["P", "F"], " ", "=", " ", - RowBox[{"P", "[", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - RowBox[{ - SubscriptBox["y", "0"], "+", - SubscriptBox["O", "Y"]}], ",", " ", - SubscriptBox["w", "0"]}], "]"}]}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - SubscriptBox["P", "F"], ",", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"diffRaise", "[", "v_", "]"}], ":=", - RowBox[{"D", "[", - RowBox[{ - RowBox[{ - SubscriptBox["V", "A"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - "v", ",", "x", ",", "y", ",", "L", ",", "w", ",", "\[Gamma]"}], - "]"}], ",", "v"}], "]"}], ",", " ", "S", ",", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - "v", ",", "x", ",", "y", ",", "L", ",", "w", ",", "\[Gamma]"}], - "]"}]}], "]"}], ",", "v"}], "]"}]}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"FullSimplify", "[", - RowBox[{"diffRaise", "[", "v", "]"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], - "\n", - RowBox[{"(*", " ", - RowBox[{ - "Check", " ", "that", " ", "the", " ", "trading", " ", "function", " ", - "is", " ", "invariant", " ", "under", " ", "the", " ", "swap"}], " ", - "*)"}]}], "\n", - RowBox[{"Assert", "[", - RowBox[{ - RowBox[{"Abs", "[", - RowBox[{"\[CurlyPhi]", "[", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - RowBox[{ - SubscriptBox["y", "0"], " ", "+", " ", - SubscriptBox["O", "Y"]}], ",", " ", - RowBox[{ - SubscriptBox["L", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[Delta]", "LiqX"], "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - SubscriptBox["w", "0"]}], "]"}], "]"}], " ", "<", " ", - SuperscriptBox["10", - RowBox[{"-", "15"}]]}], "]"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"checkRaise", "[", - RowBox[{ - "v_", ",", "x_", ",", "y_", ",", "L_", ",", "S_", ",", "w_", ",", - "\[Gamma]_"}], "]"}], ":=", " ", - FractionBox[ - RowBox[{ - RowBox[{"w", " ", - RowBox[{"(", - RowBox[{"v", "+", "y"}], ")"}], " ", - RowBox[{"(", - RowBox[{"L", "-", - RowBox[{"v", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["x", "y"], ")"}], "w"], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}], "+", - RowBox[{"S", " ", - SuperscriptBox[ - RowBox[{"(", - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - RowBox[{"v", "+", "y"}], ")"}], - RowBox[{ - RowBox[{"-", "1"}], "+", "w"}]], " ", - RowBox[{"(", - RowBox[{"L", "-", - RowBox[{"v", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["x", "y"], ")"}], "w"], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}], - ")"}], - FractionBox["1", "w"]], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"L", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "w"}], ")"}]}], "-", - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - FractionBox["x", "y"], ")"}], "w"], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"v", " ", "w"}], "+", "y"}], ")"}], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}]}], - RowBox[{"w", " ", - RowBox[{"(", - RowBox[{"v", "+", "y"}], ")"}], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "L"}], "+", - RowBox[{"v", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["x", "y"], ")"}], "w"], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}]]}], - ";"}], "\n", - RowBox[{"checkRaise", "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["S", "ext"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"numRaise", "[", - RowBox[{ - "v_", ",", "x_", ",", "y_", ",", "L_", ",", "S_", ",", "w_", ",", - "\[Gamma]_"}], "]"}], ":=", " ", - RowBox[{ - RowBox[{"w", " ", - RowBox[{"(", - RowBox[{"v", "+", "y"}], ")"}], " ", - RowBox[{"(", - RowBox[{"L", "-", - RowBox[{"v", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["x", "y"], ")"}], "w"], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}], "+", - RowBox[{"S", " ", - SuperscriptBox[ - RowBox[{"(", - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - RowBox[{"v", "+", "y"}], ")"}], - RowBox[{ - RowBox[{"-", "1"}], "+", "w"}]], " ", - RowBox[{"(", - RowBox[{"L", "-", - RowBox[{"v", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["x", "y"], ")"}], "w"], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}], ")"}], - FractionBox["1", "w"]], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"L", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "w"}], ")"}]}], "-", - RowBox[{ - SuperscriptBox[ - RowBox[{"(", - FractionBox["x", "y"], ")"}], "w"], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"v", " ", "w"}], "+", "y"}], ")"}], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}]}]}], - ";"}], "\n", - RowBox[{"numRaise", "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["S", "ext"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"denomRaise", "[", - RowBox[{ - "v_", ",", "x_", ",", "y_", ",", "L_", ",", "S_", ",", "w_", ",", - "\[Gamma]_"}], "]"}], ":=", " ", - RowBox[{"w", " ", - RowBox[{"(", - RowBox[{"v", "+", "y"}], ")"}], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "L"}], "+", - RowBox[{"v", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox["x", "y"], ")"}], "w"], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}]}], - ";"}], "\n", - RowBox[{ - RowBox[{"denomRaise", "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["S", "ext"], ",", - SubscriptBox["w", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], "\n", "\n"}], "\n", - RowBox[{ - RowBox[{"(*", - RowBox[{ - RowBox[{ - RowBox[{"diffLower", "[", "v_", "]"}], ":=", - RowBox[{"D", "[", - RowBox[{ - RowBox[{ - SubscriptBox["V", "A"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{"v", ",", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - "v", ",", "x", ",", "y", ",", "L", ",", "w", ",", "\[Gamma]"}], - "]"}]}], "]"}], ",", " ", "S", ",", " ", "v"}], "]"}], ",", " ", - "v"}], "]"}]}], ";", "\n", - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"FullSimplify", "[", - RowBox[{"diffLower", "[", "v", "]"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], - "*)"}]}]}], "Code", - CellChangeTimes->{{3.9119155810024433`*^9, 3.911915714750348*^9}, { - 3.911915807605125*^9, 3.911915819329722*^9}, {3.911915898415785*^9, - 3.911915941457925*^9}, {3.911916261572165*^9, 3.911916269164069*^9}, { - 3.91675082748877*^9, 3.916750830647251*^9}, {3.916755607350933*^9, - 3.9167556247681293`*^9}, {3.916837467954167*^9, 3.9168375040876637`*^9}, { - 3.916840006139349*^9, 3.9168400489569063`*^9}, {3.916840492337409*^9, - 3.916840493344598*^9}, {3.916840601017839*^9, 3.916840601114201*^9}, { - 3.916840694014946*^9, 3.9168407027692823`*^9}, {3.9168408412216988`*^9, - 3.9168408415590687`*^9}, {3.9168408892290707`*^9, 3.916840890247583*^9}, { - 3.91684092129491*^9, 3.9168409213471937`*^9}, {3.916841127738755*^9, - 3.916841200194109*^9}, {3.916841307935339*^9, 3.916841324012429*^9}, { - 3.916841359362419*^9, 3.916841415683488*^9}, {3.91737652142321*^9, - 3.917376524511488*^9}}, - CellLabel-> - "In[320]:=",ExpressionUUID->"7a15b2a1-0c7b-4080-9632-dc9021620919"], - -Cell[BoxData[ - GraphicsBox[{{{}, {}, - TagBox[ - {RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[ - 1.], LineBox[CompressedData[" -1:eJwV13s4VGsbBnDpIJFUchgJpUjIoZSS26G0QwghJKSEKCUisRaJ5BNRQtJG -UsnZrJlBUzkOKmVHxKSi2iqVSgeq791/zfW7rpm11jPzPvfzjKrPAYc9oiIi -IlJTRET+e80f4YbeS9AzObWx7fOEuIRJgOiC25Uy0ljgWHl6Zfsbk3H5yPIz -Mip4/fDSndTW7ybGhSUa0TK6WCSMjC9smIln/zb5HpExxbqhwye+cuVRkfxI -NETGHqHZSwLKijTAEj55GCzjBc/Yt13rqbW4P8ODGyRzEOoG5iHpBn9B5vnW -Hf+7Q0HDacaj6cmuCNHPeTl9OBHBqiUelU3eWBR6+v2DA6ko9nE+2P5sL36G -eP8pacjAzquZsXdl96N0uZR8zr0LGPhYfMzd6SBcpnVZKujkQswrRTz4yiHk -JMrJytRfhpvV/+Y/vBuKb291JdVu5WPL/zS33M4Mw30v59lRI4VIVtZkewYd -RZr+67T+T0UwXVD0T9WfCBzMbQiZ/qEYVutKwsv3HUObQolHmNwNvIqR0nNr -j4L05z9tH1g3IdRITv/4+TgeDuzaWLGlDGK/VFoCpWPQUx6frMSUo2Xd6TKX -KRQuCFdXLKwtR2+G5pIfohTcJF89VuSXo0auJDtrGgWhn6Uyq6Ucd9/R53rE -KAwtEquU7SnH+MfS2s1SFD4mJ/bM+VaOf2Pqu76zKMzyP71YdE0FvBZPpS4Z -UDBWTeO8YlfAQa1Z76c3BRU/lyDj2gp0mCx4H7mbwvSbSovP8iuQOywZ99OX -wv21109vaK3A2TRtjPtR8LJv8MzorYCCE+/HsyAKJ2K+TjOfrECfts6JqAgK -HQM7tuWaVWLVerZd3xkKO7MXjzh2VELhiXLrCi6FSfaHsl2dlVhT6z5gy6OQ -3VV3JPCfSqTaS4wfrKXQLekyJa6/EpXaY3qV9RTsY07LV76rBP1U9rHGXQoW -vl8spWdXYcpQ5KNXbRSW6zQXdGytgpNF7LcrTym0WqX7P9lWhSuChtRr/RT2 -+nmtHNpehdLCfp2SAQr5l3/yJnZWwa3wdkTpMwoL5698pBlchRm5CdZXX1KY -8z1T5FRKFURn3Xrj/5bC1zv+Ozc9qEJ93hwXg58U2OM2VVe7qvCQjrimOUHh -6Apd8VlPqiBmealbZZLCz4zx6vuDVfDcZX9H/DcFkX1xkq5jVVBcIuy9N4XG -LKnc2oAF1fhl37NEWZyGilunQqp7NbKGO6JeydJ4kVJ1YGxXNepmZ5lx5WgU -NJxvcvKtxtYHAy+S5Gks094ZohBUjYSLM2s1WTRWiIy05kdX42myX4OHEg3D -oqlHa/6uhnWIv2nSEhrWY4bdfa+r8SV3o43EShomtzrrNN5V425PTCqbWD8p -oCDsYzWcs3zqvXRpsBZfOjjvRzWedTo8rNCj8WbbdAmrWTVYe9LqpeUqGicq -usDVqsGKTd95xkY0jh4PWiamV4OPq5rOdBMHbhGbvX11DZaUidseWEfD4fm6 -vo8bahCkpZ2Qu57UOzc/VMOuBnmOW96/20Cj7uDBa5khNQgw1cpwMadRbjwr -dfhIDexE42cMEhfMLAwziKzBvVi13X4WNJIu91g8iK3BviOBTw9tpOHaaSKc -kVEDqcZYQZQlja8rZ88PY5PP81SveljR0PlwLcppogZdETZ3bbbR6E+zCnX9 -U4NtGjPbbhCfWvU20GMqG3ZzjjwXd6AxFKHl7ivBxjO9ZDQQZ00rMwpVZKNq -eRdX04nGNFb1ePp6NnrFB8o6nGlU1jmNZoKN+MhkZqELjV27vg7nWLBhH57+ -IJCYV2j4uMCajYykh7pirjQOrORWVbmzkROty9XfQaNv462DXcfY8HRIGvFw -p5H42nNfTwwbtTNSJnOJVyf92fU0jo0DkynKQuLUB6Z2L0+zsUq08oK7B41N -bg3an3PYSL2b62q9k8bY5O6l3/LYKG4v+XyC+HLeNKWJAjZyGYnL9cQ/hzZJ -Ti1hQzPqhZaWJ/m+D7SOzKtjI4uWkf9N7DnP/4XsbTYk/BtMdHfRkKgR72M1 -slFUKhPuTbz3p5VgcQcbb0+1LLxDrBh/76p+P7kfJ2XDES8arerBeYaDbAT1 -HRzLIw5rk8pcN8QGu2wzV0DcOcf+pPk7NkoyJ6NY3jROZj/ydZhkY5FswUA5 -sfP2U+9KRBjYuN2X7iFWlzYNFZvO4FtVotYkcWv8zbi62Qzy/wiVLHxoXDD1 -lZCbxyBQ/txnX+J9E6z0EFkGIelSlfHE4iGJ+cuUGaj8iPm3gbhvBTTpJQye -Tjvr85z4+quvFU/VGehV5zT+Irby2H0nVZcBbdBmYbCb9IMca8vbVQxuKol7 -2xC/fdjZucmIwYDwsJ8vcfJmk8GfZgwcpabophF7iH71227J4ETqhrErxFr1 -Nz6UWTFwnd2XyyWeDPcJn2VH6kt9qd9BfE9f4Y+vIwNrll/FAPGl9w9O8l0Y -gB2iMEocXHxSiuXBQNNPOvAXsdSiL0oPfBnMkTdpl/elIXxy/cpyfwYpSq97 -1YjL0r21TwQx6LZwfbSSmLKVrxGGMBAmX6o2IrYXf2BsFMbgwngzZU6s0hjf -mB7JYFqs0NCK+GO0sc1oNIMXWmPd9sS3jT53/RXHoOWLlLczcdqXa+4FCQwi -e8weuxH7lHm9/HWagXhnpoEnsX6AXKBrKoOiXqUoL2LRpffHKjMYvPkwWOpN -/OjZicjZWQzqZo22/+f87PWi+3IZ9Ko5dP33/sPbx07d/ZvBwtWspv+ut1H6 -2lylIgbN+o5/uxPLtO/KCr/OoFVm1j4X4qF4WdVHpQzCOq0VHIirTe8Va1Ux -aNyxtMaa+MREnG4Cw6C4qGD9RuLt7HWc57UMVK92lawnXhbyCca3Gazcdnem -PvH4iuKW840MbDOi7NSJm1952n1qJfaeQysSn/97QY/1PQYxxQm5UsR7PTo8 -ix6S8+c6VihCvEYu7pVIN4PfXh6Zn8jvNfORUbB7HwOP0kehz4mfJH/8WiNk -kK7ts6GTuHjz1ePSLxmYt8t9qic+Kuo5PfA1g+SDIqnXiRWOtsuofGSwNebS -GYp4RD/2YuQXBn94QR/9iXnv16o9/s6gv6DA2IHYbXeRQdIUDq7Jh2cqE1+0 -pR2+zONgVfFS15vkfC8bNHk7TY5D9o9J3VTi8pDJuAWKHGhNSikcIm7KCK8x -XMLBreeScgbEo31B8hEGHNy+fK79Gum/o/tXVJxaw0Fopp9yPLHo7zdbstdz -ECDSGruLWFbV91itBQebRT2PziWGn5vwlyMHcSlTVQJI/7d9lwuXcuWg/HXQ -pw3ETkmP5yh7cHDdifdImnjfTXszU18ORnWWNFWRfEn9bFkYG8pBnv6OgFGS -Ty9iDALEznGgcj6Mb0jybP/cT6LyWRwckn2VPkHycDy/NEcjlwOjY8KjfGKJ -5uX3tlzh4EZKeuhG4lWSKrrJNRzMY+mvsiB5Gn9Bcly6m4Ot4a4D80keS2u2 -paj2cfAyczVfQPI6uzZBXV/IQVuXWWU0calQdIfjKw7M5sztGCb53q32o/bc -OAftjSUPisk80KgYpllyXDyJfqMsSubFUO+OG7KKXBzK2ff0uiONv0Xv/zNP -mYtQT5FKB2KWE1tdQp0LnZbc8jwybyS+nbw3YchFUeLlLzpkPo0aaygMOHPx -z47Nlxfbkrzac9G8140LFq9zbv1WGn4p0vsfe3KxG7PznIkHn32/dW8vF9mR -zZIJNqTfYgW+t8K4OGy4xXCAzMOa1oDyvPPkemnibZ6baRz6JOzNyebC6Jnd -xAiZnzosx6kXLnFhjKG/woiLAtc7pxZxUTqgZJS0ieStlOQkxeail/Uy+CqZ -x1FONzf7dHMRVK++lqQmzAc/CNVkebi1XSpeaw2NxaqRF8JZPCi/kpdMNaQx -xWeaQ9siHs4mnkscW03y5aV80wF1HvTEZH2qyX6x4bXZDd5aHq49TrqwQp/G -2tH0cHt3HpQCviu90SLPN7lGOuoyD1+NfAazVEkebrgruF/IwzdlT+1+FRrv -j9vEqV7j4Vy9Q4gScckfr/HmCh6uNDoLLy6isXxqUv/cBh5e2C6yPaNIQ21W -f/HVYR4qtK3PmC8g/SZPmXVp1kJp8Zd3L8TIfF85V7JfpxZrZo4qzCe22Zzf -PaRfixcVgd7mM2hEhzUGjq+rxYcEBdNL08j5/GfmeQXrWgSXbdtgTfa9krS0 -kV2Btdh2uwmRZH80lShIf3ejFhR0rmm9o+D3u2l4unYdykc4K4c7KKjpBJnu -0avDitAIyeZ2CoM7ZXIaV9fBxuik8ArZd13rfezjTOrQWFXj49NK4a+oPzwR -+zoUDTS+u99AQfPn2tSJQ3VYo79nXhjZr99/vbHuE6cOurFnfkwWUTj8Pu1M -/8Z67NNQGfoQRcGn+kOk+pZ6LJ2eOJJxjOzbx7buPbS1HtGnu8bWRlLQEhff -MNO5Hv9GWIhHh1N4pUaNGPjVw6+jxXYyhPw/8QjedPpUPfy7/CwFe0l97VYT -Rvfr8WPf7LVX7ChIXpvql+lyC2L80Xy/RRRY81dQ3S58aCzzLFA7GIPP5vsf -9Bvehp1ZqGX+4WhkdOXGpHJuI8M9n0oMPI4oq3xL9po72PRvZ4GdbRQamvyl -S+/cQYnix4grE5HYJC854Wd+FypWI8XphRFYeiDkzed7d5Hk5lhxaP5RmOZW -jJvZN8DgqKIljw5DfkWjomhnA+QFQS7lwlDsbsu2yHBrRILeyQlMHsIunnXy -m6eN+Km/v0hKJQS8Un6P1L4m6DaKBSiLBMPj1Ix1Vz81gR1tlfw9xx9G6zXq -pxxqxv4ABamebXsQ+knSQudXM1yOL7XmHfHCSHTHvwtjWnAxb++Q1hEXXB3z -vHr8dwsU9Vd9ay+0RkNAtV95YiuEEZWRt/nqpK+H/roiLkDL7TiOxiIT/q/j -01jDEgKYWt/ZPtRvwh80U3urJiVAyBF9vboc8IsEu/9XOE+AUq0+28FkU75B -74uHBYoCeIWvXJAiYc63+T7olq8twPDg0PEUiU3844YD+/O2CRDc6ui3SNaa -7/VzcsMzRwF+X5QbNgm35m+8tXCOsrMACwIVg4OeWPNnWXpUXHITIHJhQN6X -bBv++e1Pv+buFiB81ZOgGyq2/NLQ3uiLRwQY/NEvtzPTnp+29oddf7gAszZV -n97Zas8PnZRXXRgpwHxpY5E9P+z56064NuREk3oeq44kum/jt6T3iOUkCKDQ -W8xRU3HgX3f59qTvFKnfee/yndsc+CmKctdZyQLkb/a8cDHWge9U4GyTnSrA -DumGA7rDDvw1fmFKfWcFaEg+23NC1pHPWnF+VOGcAMc/exsPbnbk/xqt4e/I -FOBA1Ytc8whH/mDl49SsLAGCljVP3LjuyP8/co327Q== - "]]}, - Annotation[#, "Charting`Private`Tag$52369#1"]& ]}, {}}, - AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948], - Axes->{True, True}, - AxesLabel->{None, None}, - AxesOrigin->{0, 0}, - DisplayFunction->Identity, - Frame->{{False, False}, {False, False}}, - FrameLabel->{{None, None}, {None, None}}, - FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, - GridLines->{None, None}, - GridLinesStyle->Directive[ - GrayLevel[0.5, 0.4]], - ImagePadding->All, - Method->{ - "DefaultBoundaryStyle" -> Automatic, - "DefaultGraphicsInteraction" -> { - "Version" -> 1.2, "TrackMousePosition" -> {True, False}, - "Effects" -> { - "Highlight" -> {"ratio" -> 2}, "HighlightPoint" -> {"ratio" -> 2}, - "Droplines" -> { - "freeformCursorMode" -> True, - "placement" -> {"x" -> "All", "y" -> "None"}}}}, "DefaultMeshStyle" -> - AbsolutePointSize[6], "ScalingFunctions" -> None, - "CoordinatesToolOptions" -> {"DisplayFunction" -> ({ - (Identity[#]& )[ - Part[#, 1]], - (Identity[#]& )[ - Part[#, 2]]}& ), "CopiedValueFunction" -> ({ - (Identity[#]& )[ - Part[#, 1]], - (Identity[#]& )[ - Part[#, 2]]}& )}}, - PlotRange->{{0, 0.2}, {-0.0012003592993060877`, 0.008492244754738969}}, - PlotRangeClipping->True, - PlotRangePadding->{{ - Scaled[0.02], - Scaled[0.02]}, { - Scaled[0.05], - Scaled[0.05]}}, - Ticks->{Automatic, Automatic}]], "Output", - CellChangeTimes->{ - 3.9168413278484707`*^9, {3.916841360364497*^9, 3.916841380221867*^9}, - 3.9173756151018047`*^9, 3.917376525425939*^9}, - CellLabel-> - "Out[322]=",ExpressionUUID->"f6e93834-5111-4db5-8c3e-43dda9b8a147"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The optimal amount of Y to tender is: \\!\\(\\*SubscriptBox[\\(\ -\[CapitalDelta]\\), \\(Y\\)]\\) = \"\>", - "EchoLabel"], " ", "0.0921528843667211`"}]], "Echo", - CellChangeTimes->{ - 3.9173765254619226`*^9},ExpressionUUID->"8ac1734a-e0db-4cdb-81dc-\ -2aa139ec630e"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The amount out is: \\!\\(\\*SubscriptBox[\\(\[CapitalDelta]\\), \ -\\(X\\)]\\) = \"\>", - "EchoLabel"], " ", - RowBox[{"-", "0.08387094146095486`"}]}]], "Echo", - CellChangeTimes->{ - 3.9173765254698887`*^9},ExpressionUUID->"cef205b4-24c5-4b42-84f6-\ -3911caee3c22"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The resulting reserves are: (\\!\\(\\*SubscriptBox[\\(x\\), \ -\\(1\\)]\\),\\!\\(\\*SubscriptBox[\\(y\\), \\(1\\)]\\)) = \"\>", - "EchoLabel"], " ", - RowBox[{"{", - RowBox[{"0.9161290585390451`", ",", "1.0921528843667212`"}], - "}"}]}]], "Echo", - CellChangeTimes->{ - 3.9173765254926977`*^9},ExpressionUUID->"7b57ec96-1204-4b48-b343-\ -3a8cb80fbd77"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The marginal price paid was: \\!\\(\\*SubscriptBox[\\(P\\), \ -\\(M\\)]\\) = \"\>", - "EchoLabel"], " ", "1.0987462732801418`"}]], "Echo", - CellChangeTimes->{ - 3.917376525500349*^9},ExpressionUUID->"9c3d0530-4afa-4a50-a712-\ -9da4101925ad"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The final price of the pool is: P = \"\>", - "EchoLabel"], " ", "1.1921386776098795`"}]], "Echo", - CellChangeTimes->{ - 3.9173765255174093`*^9},ExpressionUUID->"40d8d1a6-b0d6-46a6-b818-\ -6eaf5ee08fcd"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The equation to do root finding with is: \"\>", - "EchoLabel"], " ", - RowBox[{ - RowBox[{"-", "1"}], "+", - FractionBox[ - RowBox[{"S", " ", - SuperscriptBox[ - RowBox[{"(", - FractionBox[ - RowBox[{"L", " ", - SuperscriptBox[ - RowBox[{"(", - RowBox[{"v", "+", "y"}], ")"}], - RowBox[{ - RowBox[{"-", "1"}], "+", "w"}]], " ", - RowBox[{"(", - RowBox[{"v", "+", "y", "-", - RowBox[{"v", " ", "\[Gamma]"}]}], ")"}]}], "y"], ")"}], - FractionBox["1", "w"]], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"w", " ", - RowBox[{"(", - RowBox[{"v", "+", "y"}], ")"}]}], "-", - RowBox[{ - RowBox[{"(", - RowBox[{ - RowBox[{"v", " ", "w"}], "+", "y"}], ")"}], " ", "\[Gamma]"}]}], - ")"}]}], - RowBox[{"w", " ", - RowBox[{"(", - RowBox[{"v", "+", "y"}], ")"}], " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "y"}], "+", - RowBox[{"v", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], - ")"}]}]]}]}]], "Echo", - CellChangeTimes->{ - 3.91737652579002*^9},ExpressionUUID->"ed0c361d-6c42-46c2-a90d-f49fa0612c9c"] -}, Open ]], - -Cell[BoxData[ - RowBox[{"-", "4.232163287864434`*^-9"}]], "Output", - CellChangeTimes->{ - 3.9168413278484707`*^9, {3.916841360364497*^9, 3.916841380221867*^9}, - 3.9173756151018047`*^9, 3.917376525796341*^9}, - CellLabel-> - "Out[333]=",ExpressionUUID->"7cf2cd9d-1ff3-448c-8907-80dcc7585b4c"], - -Cell[BoxData["2.3117235903313826`*^-9"], "Output", - CellChangeTimes->{ - 3.9168413278484707`*^9, {3.916841360364497*^9, 3.916841380221867*^9}, - 3.9173756151018047`*^9, 3.917376525798567*^9}, - CellLabel-> - "Out[335]=",ExpressionUUID->"a16d71b5-1eb7-4c52-831c-1c470734a16a"], - -Cell[BoxData[ - RowBox[{"-", "0.5462274097410563`"}]], "Output", - CellChangeTimes->{ - 3.9168413278484707`*^9, {3.916841360364497*^9, 3.916841380221867*^9}, - 3.9173756151018047`*^9, 3.917376525799547*^9}, - CellLabel-> - "Out[337]=",ExpressionUUID->"ae67615f-9200-4a1b-b127-1e6135b099df"] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]] -}, -WindowSize->{1210, 1233}, -WindowMargins->{{Automatic, 12}, {-819, Automatic}}, -PrintingCopies->1, -PrintingPageRange->{1, Automatic}, -FrontEndVersion->"13.2 for Mac OS X ARM (64-bit) (January 31, 2023)", -StyleDefinitions->FrontEnd`FileName[{$RootDirectory, "Users", "colin", - "Documents"}, "DarkMode.nb", CharacterEncoding -> "UTF-8"], -ExpressionUUID->"3103eac2-d17e-4a34-a2c9-7112f09edadf" -] -(* End of Notebook Content *) - -(* Internal cache information *) -(*CellTagsOutline -CellTagsIndex->{} -*) -(*CellTagsIndex -CellTagsIndex->{} -*) -(*NotebookFileOutline -Notebook[{ -Cell[CellGroupData[{ -Cell[583, 22, 189, 3, 238, "Title",ExpressionUUID->"464b00f2-edbc-4299-9ebc-bbbbadc48e36"], -Cell[CellGroupData[{ -Cell[797, 29, 177, 3, 101, "Section",ExpressionUUID->"7647c4f8-4fe4-4b60-9236-0948b016bc8d"], -Cell[977, 34, 531, 13, 54, "Code",ExpressionUUID->"90a85ca4-15ef-43a6-a1c9-9ded2b5b4873"], -Cell[CellGroupData[{ -Cell[1533, 51, 207, 3, 81, "Subsection",ExpressionUUID->"2a9c67df-985b-48b8-9ff4-a81c2ce2cf78"], -Cell[CellGroupData[{ -Cell[1765, 58, 227, 5, 67, "Subsubsection",ExpressionUUID->"a33110f6-a0d7-448f-8bd8-0f79efb458dd"], -Cell[1995, 65, 644, 20, 50, "Text",ExpressionUUID->"9a6a4459-0d52-4b73-811d-1f5b6974a4d1"], -Cell[2642, 87, 1453, 43, 230, "Code",ExpressionUUID->"7253b091-e52f-418b-a1c8-287d88022e6a"] -}, Open ]], -Cell[CellGroupData[{ -Cell[4132, 135, 558, 16, 68, "Subsubsection",ExpressionUUID->"c79752c3-b802-42fd-9612-2c9ed31365e8"], -Cell[4693, 153, 399, 11, 68, "Code",ExpressionUUID->"18a899a0-963a-45c4-a7a0-9fbeda760047"] -}, Open ]], -Cell[CellGroupData[{ -Cell[5129, 169, 182, 2, 67, "Subsubsection",ExpressionUUID->"ccc19f67-4212-4173-8f38-591d9c869a78"], -Cell[5314, 173, 404, 11, 54, "Code",ExpressionUUID->"25e959b2-4561-4b40-a658-c7cf56341acc"] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[5779, 191, 237, 6, 101, "Section",ExpressionUUID->"8ecbbf5d-d7c2-4753-8dae-ccd81d3ed5db"], -Cell[CellGroupData[{ -Cell[6041, 201, 257, 6, 81, "Subsection",ExpressionUUID->"3778290c-33c8-4669-bd57-a54efc82c76a"], -Cell[CellGroupData[{ -Cell[6323, 211, 1187, 30, 136, "Code",ExpressionUUID->"a277fd9d-36f8-4eee-9601-665001bbe972"], -Cell[CellGroupData[{ -Cell[7535, 245, 251, 7, 53, "Echo",ExpressionUUID->"68592da4-571c-4aa8-8d3d-455b2513c8a4"], -Cell[7789, 254, 242, 6, 38, "Echo",ExpressionUUID->"c83c0b22-8798-4d2a-923c-a69c08f2ae5b"] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[8092, 267, 254, 6, 81, "Subsection",ExpressionUUID->"0e4b0b5f-de16-4a42-af35-cb7f8c5a845c"], -Cell[CellGroupData[{ -Cell[8371, 277, 1007, 27, 86, "Code",ExpressionUUID->"fabf4afc-21e6-47a6-b63d-ba788b915987"], -Cell[CellGroupData[{ -Cell[9403, 308, 272, 7, 38, "Echo",ExpressionUUID->"bf8f8109-20ba-441c-ade2-43d6f6b2fe57"], -Cell[9678, 317, 230, 6, 38, "Echo",ExpressionUUID->"823915e8-7405-4278-b71a-0010f320062f"] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[9957, 329, 250, 6, 67, "Subsubsection",ExpressionUUID->"d14796ee-6661-403b-a067-2e1c5a6c6211"], -Cell[CellGroupData[{ -Cell[10232, 339, 1297, 39, 86, "Code",ExpressionUUID->"ee083f7c-4161-4e24-8675-42d8b5ffacbe"], -Cell[CellGroupData[{ -Cell[11554, 382, 313, 8, 38, "Echo",ExpressionUUID->"70b47f11-51c6-4be1-a810-240f6412d20e"], -Cell[11870, 392, 276, 7, 38, "Echo",ExpressionUUID->"512c7c1e-173f-4bd0-961f-0cc5e61586e9"] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[12207, 406, 225, 4, 67, "Subsubsection",ExpressionUUID->"0a95fd1e-5759-46f5-b752-6b4f74d4268c"], -Cell[CellGroupData[{ -Cell[12457, 414, 675, 20, 86, "Code",ExpressionUUID->"9b2bc5ef-d095-45dd-ac2b-15f02684ac4f"], -Cell[13135, 436, 211, 6, 38, "Echo",ExpressionUUID->"af9de153-25ff-415c-9a37-4f366ff8ebbe"] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[13395, 448, 280, 6, 106, "Subsubsection",ExpressionUUID->"f59add3e-9736-413f-b760-d953f4b2de71"], -Cell[13678, 456, 1145, 38, 98, "Code",ExpressionUUID->"5ace6d65-c46d-491e-a7b3-d364ee7f21fb"] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[14884, 501, 153, 3, 101, "Section",ExpressionUUID->"0aa1aa4a-a222-4348-9a33-bdcf246c0ec1"], -Cell[CellGroupData[{ -Cell[15062, 508, 208, 3, 81, "Subsection",ExpressionUUID->"a09de9d8-3ec0-4d13-8819-089fc369fa6e"], -Cell[15273, 513, 2831, 72, 242, "Code",ExpressionUUID->"6c9eba4a-50a0-4c93-b07c-3139817809de"], -Cell[CellGroupData[{ -Cell[18129, 589, 739, 20, 86, "Code",ExpressionUUID->"57d57c6e-b361-4057-8fe3-86b50c9464e4"], -Cell[18871, 611, 310, 6, 40, "Output",ExpressionUUID->"7056df78-c626-4190-8317-ff534587aad6"], -Cell[19184, 619, 307, 6, 40, "Output",ExpressionUUID->"a4cac5d4-d372-497a-97d5-c6f6319bc812"] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[19552, 632, 156, 3, 101, "Section",ExpressionUUID->"2af33c95-75fa-4c2a-987e-0c0efa8a1771"], -Cell[19711, 637, 515, 12, 81, "Text",ExpressionUUID->"72430652-d39e-479e-8fb5-8c2568d7c943"], -Cell[CellGroupData[{ -Cell[20251, 653, 537, 14, 108, "Subsubsection",ExpressionUUID->"a8656622-88c3-4ada-82e5-d33556722b56"], -Cell[20791, 669, 517, 17, 107, "Code",ExpressionUUID->"8864b3f3-1b36-4dcd-99b8-7a357f5a3a30"] -}, Open ]], -Cell[CellGroupData[{ -Cell[21345, 691, 171, 3, 81, "Subsection",ExpressionUUID->"f9739415-ba82-4653-b842-33b37c1cd286"], -Cell[CellGroupData[{ -Cell[21541, 698, 400, 11, 107, "Subsubsection",ExpressionUUID->"905228e2-efe5-43aa-9780-0b193149ea3d"], -Cell[CellGroupData[{ -Cell[21966, 713, 12280, 363, 721, "Code",ExpressionUUID->"1a8d1d1f-d7f4-4461-a836-4d4571ea6392"], -Cell[34249, 1078, 7205, 138, 337, "Output",ExpressionUUID->"986f7163-cf03-4de4-b998-9538f3a4c8bc"], -Cell[CellGroupData[{ -Cell[41479, 1220, 300, 6, 38, "Echo",ExpressionUUID->"6394a97c-351e-437d-8c02-9b0642aacf09"], -Cell[41782, 1228, 302, 8, 38, "Echo",ExpressionUUID->"5e6b589a-5de5-4f17-9268-a35f46b410b1"], -Cell[42087, 1238, 392, 10, 38, "Echo",ExpressionUUID->"957d146b-e63f-416f-a7cb-8c6b69727396"], -Cell[42482, 1250, 279, 7, 38, "Echo",ExpressionUUID->"a6375d85-fb17-4296-9761-db2b17a953c6"], -Cell[42764, 1259, 236, 5, 38, "Echo",ExpressionUUID->"ea158521-8811-4328-bda0-60677eb48800"], -Cell[43003, 1266, 3029, 98, 238, "Echo",ExpressionUUID->"4c5f61bd-03b7-4432-a272-0f26503b2dfb"] -}, Open ]], -Cell[46047, 1367, 384, 7, 40, "Output",ExpressionUUID->"a1f818a7-7515-42f6-8412-5023424e7584"], -Cell[46434, 1376, 364, 6, 40, "Output",ExpressionUUID->"53eae298-6178-4ff5-afd7-6d8d8a6d15d1"], -Cell[46801, 1384, 363, 6, 40, "Output",ExpressionUUID->"8a5a30f2-553b-4cde-86b0-6f924840169e"] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[47225, 1397, 171, 3, 81, "Subsection",ExpressionUUID->"f642d822-e56a-4daf-87b3-4a7c12588060"], -Cell[CellGroupData[{ -Cell[47421, 1404, 377, 10, 68, "Subsubsection",ExpressionUUID->"53a95604-bde4-406e-8c5f-f440053636d6"], -Cell[CellGroupData[{ -Cell[47823, 1418, 13806, 417, 879, "Code",ExpressionUUID->"7a15b2a1-0c7b-4080-9632-dc9021620919"], -Cell[61632, 1837, 7344, 140, 330, "Output",ExpressionUUID->"f6e93834-5111-4db5-8c3e-43dda9b8a147"], -Cell[CellGroupData[{ -Cell[69001, 1981, 304, 7, 38, "Echo",ExpressionUUID->"8ac1734a-e0db-4cdb-81dc-2aa139ec630e"], -Cell[69308, 1990, 304, 8, 38, "Echo",ExpressionUUID->"cef205b4-24c5-4b42-84f6-3911caee3c22"], -Cell[69615, 2000, 394, 10, 38, "Echo",ExpressionUUID->"7b57ec96-1204-4b48-b343-3a8cb80fbd77"], -Cell[70012, 2012, 279, 7, 38, "Echo",ExpressionUUID->"9c3d0530-4afa-4a50-a712-9da4101925ad"], -Cell[70294, 2021, 241, 6, 38, "Echo",ExpressionUUID->"40d8d1a6-b0d6-46a6-b818-6eaf5ee08fcd"], -Cell[70538, 2029, 1291, 43, 86, "Echo",ExpressionUUID->"ed0c361d-6c42-46c2-a90d-f49fa0612c9c"] -}, Open ]], -Cell[71844, 2075, 292, 6, 40, "Output",ExpressionUUID->"7cf2cd9d-1ff3-448c-8907-80dcc7585b4c"], -Cell[72139, 2083, 276, 5, 40, "Output",ExpressionUUID->"a16d71b5-1eb7-4c52-831c-1c470734a16a"], -Cell[72418, 2090, 289, 6, 40, "Output",ExpressionUUID->"ae67615f-9200-4a1b-b127-1e6135b099df"] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]] -} -] -*) - diff --git a/documentation/notebooks/log_normal.nb b/documentation/notebooks/log_normal.nb deleted file mode 100644 index 05bad44b1..000000000 --- a/documentation/notebooks/log_normal.nb +++ /dev/null @@ -1,2296 +0,0 @@ -(*CacheID: 234*) -(* Internal cache information: -NotebookFileLineBreakTest -NotebookFileLineBreakTest -NotebookDataPosition[ 0, 0] -NotebookDataLength[ 81260, 2295] -NotebookOptionsPosition[ 72443, 2120] -NotebookOutlinePosition[ 73000, 2139] -CellTagsIndexPosition[ 72957, 2136] -WindowFrame->Normal*) - -(* Beginning of Notebook Content *) -Notebook[{ - -Cell[CellGroupData[{ -Cell["Log Normal Trading Function Calculations", "Title", - CellChangeTimes->{{3.911382811596325*^9, - 3.9113828340058823`*^9}},ExpressionUUID->"2003d08a-fff7-4f74-8623-\ -7a0823c9cafa"], - -Cell[CellGroupData[{ - -Cell["\<\ -First, we set up the basic functions we need throughout the notebook.\ -\>", "Section", - CellChangeTimes->{{3.911382862311339*^9, - 3.91138289581577*^9}},ExpressionUUID->"514be430-48c5-4dc6-92af-\ -6b1c3a5b8586"], - -Cell[CellGroupData[{ - -Cell["\<\ -Before anything, we should set some environment level variables.\ -\>", "Subsection", - CellChangeTimes->{{3.911387263997834*^9, - 3.9113872765136137`*^9}},ExpressionUUID->"f16f1652-ed41-4414-8c9b-\ -6b6d5d8061ac"], - -Cell[BoxData[ - RowBox[{ - RowBox[{ - RowBox[{"On", "[", "Assert", "]"}], ";"}], " ", - RowBox[{"(*", " ", - RowBox[{ - RowBox[{ - "Asserts", " ", "will", " ", "show", " ", "a", " ", "failure", " ", "if", - " ", "they", " ", "fail"}], ",", " ", - RowBox[{"and", " ", "nothing", " ", "if", " ", "they", " ", - RowBox[{"don", "'"}], "t"}]}], " ", "*)"}]}]], "Code", - CellChangeTimes->{{3.91138727840687*^9, 3.911387281430051*^9}, { - 3.911387543969853*^9, 3.911387555514419*^9}}, - CellLabel->"In[1]:=",ExpressionUUID->"8255c47c-fa0b-4fdd-8638-752453aca613"] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["First are the CDF and inverse CDF (PPF) functions.", "Subsection", - CellChangeTimes->{{3.9113829761574574`*^9, - 3.9113829863941193`*^9}},ExpressionUUID->"b3dd161e-0b53-4183-b30c-\ -be7844f26477"], - -Cell[BoxData[{ - RowBox[{ - RowBox[{"\[CapitalPhi]", "[", "x_", "]"}], " ", ":=", " ", - RowBox[{"CDF", "[", - RowBox[{ - RowBox[{"NormalDistribution", "[", - RowBox[{"0", ",", "1"}], "]"}], ",", " ", "x"}], "]"}]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalPhi]", "inv"], "[", "y_", "]"}], " ", ":=", " ", - RowBox[{"Quantile", "[", - RowBox[{ - RowBox[{"NormalDistribution", "[", - RowBox[{"0", ",", " ", "1"}], "]"}], ",", " ", "y"}], "]"}]}]}], "Code", - CellChangeTimes->{{3.911382903714142*^9, 3.911383006799996*^9}, { - 3.911385117889493*^9, 3.911385119663499*^9}, {3.91738309829743*^9, - 3.917383102823773*^9}, {3.9173831552741337`*^9, 3.917383158507695*^9}, - 3.917383532443891*^9}, - CellLabel->"In[2]:=",ExpressionUUID->"25d6c1c4-f902-41e0-8746-c63f6b03d94e"] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["\<\ -Next let\[CloseCurlyQuote]s define some helper functions. These will appear \ -often in calculations.\ -\>", "Subsection", - CellChangeTimes->{{3.911383043072701*^9, 3.911383082172174*^9}, { - 3.911383316418652*^9, - 3.9113833317783127`*^9}},ExpressionUUID->"f601d02f-f91e-4780-a166-\ -a78097a54f48"], - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - SubscriptBox["d", "1"], "[", - RowBox[{"S_", ",", "K_", ",", "\[Sigma]_", ",", "\[Tau]_"}], "]"}], " ", ":=", - " ", - FractionBox[ - RowBox[{ - RowBox[{"Log", "[", - FractionBox["S", "K"], "]"}], " ", "+", " ", - RowBox[{ - FractionBox["1", "2"], - SuperscriptBox["\[Sigma]", "2"], "\[Tau]"}]}], - RowBox[{"\[Sigma]", - RowBox[{"\[Sqrt]", "\[Tau]"}]}]]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["d", "2"], "[", - RowBox[{"S_", ",", "K_", ",", "\[Sigma]_", ",", "\[Tau]_"}], "]"}], " ", ":=", - " ", - FractionBox[ - RowBox[{ - RowBox[{"Log", "[", - FractionBox["S", "K"], "]"}], " ", "-", " ", - RowBox[{ - FractionBox["1", "2"], - SuperscriptBox["\[Sigma]", "2"], "\[Tau]"}]}], - RowBox[{"\[Sigma]", - RowBox[{"\[Sqrt]", "\[Tau]"}]}]]}]}], "Code", - CellChangeTimes->{{3.911383086202894*^9, 3.911383096527341*^9}, { - 3.911383144055451*^9, 3.911383310823001*^9}, {3.9113851030677443`*^9, - 3.91138511600043*^9}}, - CellLabel->"In[4]:=",ExpressionUUID->"d5d16a82-3e60-44ff-affc-b50eb9144304"] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["\<\ -Now let\[CloseCurlyQuote]s define functions that are more explicitly used for \ -the DFMM.\ -\>", "Subsection", - CellChangeTimes->{{3.911383368894425*^9, 3.9113833696600657`*^9}, { - 3.911383542720358*^9, - 3.911383554344432*^9}},ExpressionUUID->"009a24ad-ebe5-4d73-bdda-\ -a7839592332a"], - -Cell[CellGroupData[{ - -Cell["\<\ -These are functions used to get initial liquidity given a token amount and a \ -price.\ -\>", "Subsubsection", - CellChangeTimes->{{3.911383821691424*^9, - 3.911383842953394*^9}},ExpressionUUID->"3b15f5e3-f420-4095-899a-\ -506c7286cc40"], - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - SubscriptBox["L", "X"], "[", - RowBox[{"x_", ",", "S_", ",", "K_", ",", "\[Sigma]_", ",", "\[Tau]_"}], - "]"}], " ", ":=", " ", - FractionBox["x", - RowBox[{"1", " ", "-", " ", - RowBox[{"\[CapitalPhi]", "[", - RowBox[{ - SubscriptBox["d", "1"], "[", - RowBox[{"S", ",", "K", ",", "\[Sigma]", ",", "\[Tau]"}], "]"}], - "]"}]}]]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["L", "Y"], "[", - RowBox[{"y_", ",", "S_", ",", "K_", ",", "\[Sigma]_", ",", "\[Tau]_"}], - "]"}], " ", ":=", " ", - FractionBox["y", - RowBox[{"K", " ", - RowBox[{"\[CapitalPhi]", "[", - RowBox[{ - SubscriptBox["d", "2"], "[", - RowBox[{"S", ",", "K", ",", "\[Sigma]", ",", "\[Tau]"}], "]"}], - "]"}]}]]}], "\n", - RowBox[{ - RowBox[{"X", "[", - RowBox[{"y_", ",", "S_", ",", "K_", ",", "\[Sigma]_", ",", "\[Tau]_"}], - "]"}], " ", ":=", " ", - RowBox[{ - RowBox[{ - SubscriptBox["L", "Y"], "[", - RowBox[{"y", ",", "S", ",", "K", ",", "\[Sigma]", ",", "\[Tau]"}], "]"}], - " ", - RowBox[{"(", - RowBox[{"1", " ", "-", " ", - RowBox[{"\[CapitalPhi]", "[", - RowBox[{ - SubscriptBox["d", "1"], "[", - RowBox[{"S", ",", "K", ",", "\[Sigma]", ",", "\[Tau]"}], "]"}], - "]"}]}], ")"}]}]}], "\n", - RowBox[{ - RowBox[{"Y", "[", - RowBox[{"x_", ",", "S_", ",", "K_", ",", "\[Sigma]_", ",", "\[Tau]_"}], - "]"}], " ", ":=", " ", - RowBox[{"K", " ", - RowBox[{ - SubscriptBox["L", "X"], "[", - RowBox[{"x", ",", "S", ",", "K", ",", "\[Sigma]", ",", "\[Tau]"}], "]"}], - " ", - RowBox[{"\[CapitalPhi]", "[", - RowBox[{ - SubscriptBox["d", "2"], "[", - RowBox[{"S", ",", "K", ",", "\[Sigma]", ",", "\[Tau]"}], "]"}], - "]"}]}]}]}], "Code", - CellChangeTimes->{{3.911383688783895*^9, 3.911383741794456*^9}, { - 3.911383797950727*^9, 3.911383809912835*^9}, {3.9113838491740713`*^9, - 3.911383864952888*^9}, {3.9113841779644413`*^9, 3.911384322151863*^9}, { - 3.911384433609087*^9, 3.911384448745434*^9}, {3.9113850554248533`*^9, - 3.911385099649076*^9}, {3.91138525707533*^9, 3.911385263363533*^9}, { - 3.911385324670476*^9, 3.911385325035862*^9}, {3.911409187909778*^9, - 3.9114091880800257`*^9}}, - CellLabel->"In[6]:=",ExpressionUUID->"3950a1e9-9c32-45c4-b5ef-404c37d6ef65"] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["\<\ -These are functions that are used to get prices from either a balance in X or \ -a balance in Y.\ -\>", "Subsubsection", - CellChangeTimes->{{3.91138394332069*^9, - 3.911383960427863*^9}},ExpressionUUID->"6228385e-cfd2-4bd0-97f4-\ -58c98a5a994e"], - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - SubscriptBox["P", "X"], "[", - RowBox[{"x_", ",", "L_", ",", "K_", ",", "\[Sigma]_", ",", "\[Tau]_"}], - "]"}], " ", ":=", " ", - RowBox[{"K", " ", - RowBox[{"Exp", "[", - RowBox[{ - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalPhi]", "inv"], "[", - RowBox[{"1", " ", "-", " ", - FractionBox["x", "L"]}], "]"}], "\[Sigma]"}], " ", "-", " ", - RowBox[{ - FractionBox["1", "2"], - SuperscriptBox["\[Sigma]", "2"]}]}], "]"}]}]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["P", "Y"], "[", - RowBox[{"y_", ",", "L_", ",", "K_", ",", "\[Sigma]_", ",", "\[Tau]_"}], - "]"}], " ", ":=", " ", - RowBox[{"K", " ", - RowBox[{"Exp", "[", - RowBox[{ - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalPhi]", "inv"], "[", - FractionBox["y", - RowBox[{"K", " ", "L"}]], "]"}], "\[Sigma]"}], " ", "+", " ", - RowBox[{ - FractionBox["1", "2"], - SuperscriptBox["\[Sigma]", "2"]}]}], "]"}]}]}]}], "Code", - CellChangeTimes->{{3.9113839769604807`*^9, 3.911384029460125*^9}, { - 3.911385062781126*^9, 3.911385091502931*^9}}, - CellLabel->"In[10]:=",ExpressionUUID->"cdbca2c9-2426-4adf-8516-6c22e3b352b1"] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Then we have the trading function", "Subsubsection", - CellChangeTimes->{{3.9114107980754547`*^9, - 3.911410804009096*^9}},ExpressionUUID->"18015876-38da-4fa9-82b7-\ -a417d745ef90"], - -Cell[BoxData[ - RowBox[{ - RowBox[{"\[CurlyPhi]", "[", - RowBox[{ - "x_", ",", "y_", ",", "L_", ",", "K_", ",", "\[Sigma]_", ",", "\[Tau]_"}], - "]"}], " ", ":=", " ", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalPhi]", "inv"], "[", - FractionBox["x", "L"], "]"}], "+", - RowBox[{ - SubscriptBox["\[CapitalPhi]", "inv"], "[", - FractionBox["y", - RowBox[{"K", " ", "L"}]], "]"}], "+", - RowBox[{"\[Sigma]", - RowBox[{"\[Sqrt]", "\[Tau]"}]}]}]}]], "Code", - CellChangeTimes->{{3.911410806554799*^9, 3.911410882453505*^9}, { - 3.9114109468550673`*^9, 3.9114109866059113`*^9}}, - CellLabel->"In[12]:=",ExpressionUUID->"a65cb5ec-cdac-40e0-bb49-f3d8157592d9"] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["\<\ -Let\[CloseCurlyQuote]s initialize a pool with some constants and some \ -liquidity. \ -\>", "Section", - CellChangeTimes->{{3.911384055956565*^9, 3.911384066810919*^9}, { - 3.911384711690135*^9, - 3.911384714277852*^9}},ExpressionUUID->"da815218-0c74-4720-a5c9-\ -76f45781c5e2"], - -Cell[CellGroupData[{ - -Cell["\<\ -First, let\[CloseCurlyQuote]s set the parameters for our curve, including the \ -fee parameter \[Gamma]\ -\>", "Subsection", - CellChangeTimes->{{3.911384725040826*^9, 3.911384731518064*^9}, { - 3.9113851982356*^9, - 3.911385205023809*^9}},ExpressionUUID->"d461a415-44ca-4804-8248-\ -6137a0f9449f"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - RowBox[{ - RowBox[{"{", - RowBox[{ - SubscriptBox["K", "0"], ",", " ", - SubscriptBox["\[Sigma]", "0"], ",", " ", - SubscriptBox["\[Tau]", "0"], ",", " ", - SubscriptBox["\[Gamma]", "0"]}], "}"}], " ", "=", " ", - RowBox[{"{", - RowBox[{"2", ",", " ", - FractionBox["1", "2"], ",", " ", "1", ",", " ", "0.997"}], "}"}]}], - ";"}], " "}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["K", "0"], ",", " ", - "\"\<\!\(\*SubscriptBox[\(K\), \(0\)]\) = \>\""}], "]"}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["\[Sigma]", "0"], ",", " ", - "\"\<\!\(\*SubscriptBox[\(\[Sigma]\), \(0\)]\) = \>\""}], "]"}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["\[Tau]", "0"], ",", " ", - "\"\<\!\(\*SubscriptBox[\(\[Tau]\), \(0\)]\) = \>\""}], "]"}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["\[Gamma]", "0"], ",", " ", - "\"\<\!\(\*SubscriptBox[\(\[Gamma]\), \(0\)]\) = \>\""}], "]"}], - ";"}]}], "Code", - CellChangeTimes->{ - 3.91138448247676*^9, {3.9113845136096563`*^9, 3.911384540517331*^9}, { - 3.911384579083336*^9, 3.911384646274679*^9}, {3.911384706054633*^9, - 3.911384732869401*^9}, {3.911385194438079*^9, 3.9113852384442177`*^9}, - 3.911387336640081*^9, {3.911408996136958*^9, 3.9114090092659817`*^9}, { - 3.9169341546962433`*^9, 3.916934155785771*^9}, {3.916934920973572*^9, - 3.916934921366069*^9}, {3.916935004865656*^9, 3.916935006671085*^9}, { - 3.916935097711054*^9, 3.916935099175394*^9}, {3.91693537100875*^9, - 3.916935393268579*^9}, {3.916935561687649*^9, 3.916935563633135*^9}, { - 3.91738367920582*^9, 3.917383680576692*^9}, {3.917384081819539*^9, - 3.917384085426984*^9}}, - CellLabel-> - "In[226]:=",ExpressionUUID->"8d262a91-37a1-41fb-b1b3-ae8191b1ccda"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"\\!\\(\\*SubscriptBox[\\(K\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", "2"}]], "Echo", - CellChangeTimes->{ - 3.917384087656493*^9},ExpressionUUID->"895b6ae3-47b6-4cb6-8323-\ -a3880b554134"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"\\!\\(\\*SubscriptBox[\\(\[Sigma]\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", - FractionBox["1", "2"]}]], "Echo", - CellChangeTimes->{ - 3.917384087666264*^9},ExpressionUUID->"07685432-a00e-4b16-9c03-\ -35ac387559f6"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"\\!\\(\\*SubscriptBox[\\(\[Tau]\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", "1"}]], "Echo", - CellChangeTimes->{ - 3.917384087699052*^9},ExpressionUUID->"91c9e7bc-ac3f-4161-83b8-\ -937782638460"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"\\!\\(\\*SubscriptBox[\\(\[Gamma]\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", "0.997`"}]], "Echo", - CellChangeTimes->{ - 3.917384087709299*^9},ExpressionUUID->"64852520-3a78-42d5-bb48-\ -a4c377721c93"] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["\<\ -Now, let\[CloseCurlyQuote]s set the initial liquidity by providing an amount \ -of X and a price S.\ -\>", "Subsection", - CellChangeTimes->{{3.9113847363117323`*^9, 3.911384755116337*^9}, { - 3.911384849366685*^9, - 3.9113848505774117`*^9}},ExpressionUUID->"a6874bc0-590c-4cb3-9d20-\ -f010a014a154"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - RowBox[{ - RowBox[{"{", - RowBox[{ - SubscriptBox["x", "0"], ",", - SubscriptBox["S", "0"]}], "}"}], " ", "=", " ", - RowBox[{"{", - RowBox[{"1000", ",", " ", "2"}], "}"}]}], ";"}], " "}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["x", "0"], ",", " ", - "\"\\""}], "]"}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["S", "0"], ",", " ", - "\"\<\!\(\*SubscriptBox[\(S\), \(0\)]\) = \>\""}], "]"}], ";"}]}], "Code",\ - - CellChangeTimes->{{3.911384757671178*^9, 3.911384806225191*^9}, { - 3.911386982132729*^9, 3.911386989059497*^9}, 3.91138734111685*^9, { - 3.9114090196649647`*^9, 3.9114090339697657`*^9}, {3.917383705204445*^9, - 3.917383705323718*^9}, {3.917383899939695*^9, 3.9173839018597183`*^9}, { - 3.917383976339484*^9, 3.917383976688408*^9}, 3.917384041262576*^9, { - 3.9173840921075373`*^9, 3.9173840922911777`*^9}, 3.917384525229738*^9}, - CellLabel-> - "In[352]:=",ExpressionUUID->"085ca656-cc94-43cf-a8c6-c116e23e4910"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The initial X-reserve balance is: \ -\\!\\(\\*SubscriptBox[\\(x\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", "1000"}]], "Echo", - CellChangeTimes->{ - 3.9173845258597317`*^9},ExpressionUUID->"84bc3cd5-a9d3-4e32-9c9a-\ -3e283a554458"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"\\!\\(\\*SubscriptBox[\\(S\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", "2"}]], "Echo", - CellChangeTimes->{ - 3.9173845258928137`*^9},ExpressionUUID->"72757538-71b4-4792-95f9-\ -111ddaec7be0"] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["\<\ -From this, let\[CloseCurlyQuote]s see what we will get for the initial amount \ -of Y and L.\ -\>", "Subsubsection", - CellChangeTimes->{{3.9113848345992517`*^9, - 3.91138485967836*^9}},ExpressionUUID->"d0f44536-b00f-4974-8c75-\ -dd65dd319645"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - RowBox[{ - RowBox[{"{", - RowBox[{ - SubscriptBox["L", "0"], ",", " ", - SubscriptBox["y", "0"]}], "}"}], " ", "=", " ", - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["L", "X"], "[", - RowBox[{ - SubscriptBox["x", "0"], ",", - SubscriptBox["S", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"]}], "]"}], ",", " ", - RowBox[{"Y", "[", - RowBox[{ - SubscriptBox["x", "0"], ",", - SubscriptBox["S", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"]}], "]"}]}], "}"}]}], ";"}], " "}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - SubscriptBox["L", "0"], ",", " ", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - SubscriptBox["y", "0"], ",", " ", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}]}], "Code", - CellChangeTimes->{{3.911384864489366*^9, 3.911384942301722*^9}, { - 3.911384992602735*^9, 3.9113850128379593`*^9}, {3.911385047347066*^9, - 3.9113850518014383`*^9}, {3.9113851385254107`*^9, 3.9113851753238697`*^9}, { - 3.91138696634296*^9, 3.911386992951726*^9}, {3.911387349621842*^9, - 3.911387398394403*^9}, {3.911912845565853*^9, 3.9119128460491123`*^9}}, - CellLabel-> - "In[354]:=",ExpressionUUID->"57112165-db6f-447c-9713-f9c85c6d4828"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The initial liquidity is: \\!\\(\\*SubscriptBox[\\(L\\), \ -\\(0\\)]\\) = \"\>", - "EchoLabel"], " ", - "2491.94060111165558714117216784956080628281`18."}]], "Echo", - CellChangeTimes->{ - 3.917384528556839*^9},ExpressionUUID->"8a3a2fc1-7c6c-4584-8ff6-\ -5f25897a487f"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The initial Y-reserve balance is: \ -\\!\\(\\*SubscriptBox[\\(y\\), \\(0\\)]\\) = \"\>", - "EchoLabel"], " ", - "1999.99999999999999999999999999999999999045`18."}]], "Echo", - CellChangeTimes->{ - 3.917384528588469*^9},ExpressionUUID->"7b91e2a0-f903-4c01-902d-\ -710d8e9c25ee"] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Let\[CloseCurlyQuote]s check that the prices are correct after the \ -fact.", "Subsubsection", - CellChangeTimes->{{3.911385351666885*^9, - 3.91138536037985*^9}},ExpressionUUID->"0dabba71-0908-48dd-b11c-\ -9fc06ac2d79b"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{"Assert", "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "X"], "[", - RowBox[{ - SubscriptBox["x", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"]}], "]"}], " ", "==", " ", - RowBox[{ - SubscriptBox["P", "Y"], "[", - RowBox[{ - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"]}], "]"}]}], "]"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "X"], "[", - RowBox[{ - SubscriptBox["x", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"]}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], " "}]}], "Code", - CellChangeTimes->{{3.9113853639105387`*^9, 3.9113854185634947`*^9}, { - 3.9113869483534203`*^9, 3.911386962492029*^9}, {3.911386994813387*^9, - 3.911387177122032*^9}, {3.911387291516371*^9, 3.911387309281919*^9}, - 3.911912928324705*^9}, - CellLabel-> - "In[356]:=",ExpressionUUID->"05df5500-1e66-49a9-afd7-256365f8b6dc"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The initial price is: P = \"\>", - "EchoLabel"], " ", "2"}]], "Echo", - CellChangeTimes->{ - 3.917384531034382*^9},ExpressionUUID->"15c46bab-62f8-4c23-be66-\ -af5cfc278ceb"] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["\<\ -Just to verify that we could have done this the other way, and show the flow, \ -let\[CloseCurlyQuote]s do that real fast.\ -\>", "Subsubsection", - CellChangeTimes->{{3.9113853013290577`*^9, - 3.9113853161239634`*^9}},ExpressionUUID->"6c78f375-83c5-40c5-a26f-\ -9dfafb83427b"], - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - RowBox[{"{", - RowBox[{ - SubscriptBox["L", - SubscriptBox["0", "y"]], ",", " ", - SubscriptBox["x", - SubscriptBox["0", "y"]]}], "}"}], " ", "=", " ", - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["L", "Y"], "[", - RowBox[{ - SubscriptBox["y", "0"], ",", - SubscriptBox["S", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"]}], "]"}], ",", " ", - RowBox[{"X", "[", - RowBox[{ - SubscriptBox["y", "0"], ",", - SubscriptBox["S", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"]}], "]"}]}], "}"}]}], ";"}], "\n", - RowBox[{ - RowBox[{"Assert", "[", - RowBox[{ - RowBox[{"{", - RowBox[{ - SubscriptBox["L", - SubscriptBox["0", "y"]], ",", - SubscriptBox["x", - SubscriptBox["0", "y"]]}], "}"}], " ", "==", " ", - RowBox[{"{", - RowBox[{ - SubscriptBox["L", "0"], ",", - SubscriptBox["x", "0"]}], "}"}]}], "]"}], ";"}]}], "Code", - CellChangeTimes->{{3.911387447754344*^9, 3.911387533259612*^9}, { - 3.911409113951961*^9, 3.911409136342054*^9}, {3.911409206127439*^9, - 3.911409206365666*^9}}, - CellLabel-> - "In[358]:=",ExpressionUUID->"05cdeb1a-e1b0-40a7-af51-51ab9b75cc2e"] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Swapping", "Section", - CellChangeTimes->{{3.911387861088531*^9, - 3.9113878701923523`*^9}},ExpressionUUID->"e0558e89-2c12-471a-af64-\ -7b6a1457eb4d"], - -Cell[CellGroupData[{ - -Cell["\<\ -Now we need to set up the swap logic. We will use R to denote an arbitrary \ -reserve.\ -\>", "Subsection", - CellChangeTimes->{{3.911387873703059*^9, 3.911387883191267*^9}, { - 3.911388058682213*^9, - 3.911388067027336*^9}},ExpressionUUID->"2f7348b3-443c-4a22-943e-\ -943b7962999e"], - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{"\[CapitalDelta]_", ",", "\[Gamma]_"}], "]"}], " ", ":=", " ", - RowBox[{ - RowBox[{"(", - RowBox[{"1", "-", "\[Gamma]"}], ")"}], "\[CapitalDelta]"}]}], "\n", - RowBox[{"(*", - RowBox[{ - RowBox[{ - SubscriptBox["\[Delta]", "Liq"], "[", - RowBox[{"\[CapitalDelta]_", ",", "R_", ",", "L_", ",", "\[Gamma]_"}], - "]"}], " ", ":=", " ", - RowBox[{ - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{"\[CapitalDelta]", ",", "\[Gamma]"}], "]"}], - FractionBox["L", "R"]}]}], "*)"}]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - "\[CapitalDelta]_", ",", "x_", ",", "y_", ",", "L_", ",", "K_", ",", - "\[Sigma]_", ",", "\[Tau]_", ",", "\[Gamma]_"}], "]"}], " ", ":=", " ", - RowBox[{ - RowBox[{ - RowBox[{"(", - RowBox[{"L", "+", - RowBox[{ - FractionBox["1", "K"], - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{"\[CapitalDelta]", ",", "\[Gamma]"}], "]"}]}]}], ")"}], - RowBox[{"\[CapitalPhi]", "[", - RowBox[{ - RowBox[{ - RowBox[{"-", "\[Sigma]"}], - RowBox[{"\[Sqrt]", "\[Tau]"}]}], " ", "-", " ", - RowBox[{ - SubscriptBox["\[CapitalPhi]", "inv"], "[", - FractionBox[ - RowBox[{"y", "+", "\[CapitalDelta]"}], - RowBox[{"K", - RowBox[{"(", - RowBox[{"L", "+", - RowBox[{ - FractionBox["1", "K"], - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{"\[CapitalDelta]", ",", "\[Gamma]"}], "]"}]}]}], - ")"}]}]], "]"}]}], "]"}]}], "-", "x"}]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - "\[CapitalDelta]_", ",", "x_", ",", "y_", ",", "L_", ",", "K_", ",", - "\[Sigma]_", ",", "\[Tau]_", ",", "\[Gamma]_"}], "]"}], " ", ":=", " ", - RowBox[{ - RowBox[{"K", - RowBox[{"(", - RowBox[{"L", "+", - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{"\[CapitalDelta]", ",", "\[Gamma]"}], "]"}]}], ")"}], - RowBox[{"\[CapitalPhi]", "[", - RowBox[{ - RowBox[{ - RowBox[{"-", "\[Sigma]"}], - RowBox[{"\[Sqrt]", "\[Tau]"}]}], " ", "-", " ", - RowBox[{ - SubscriptBox["\[CapitalPhi]", "inv"], "[", - FractionBox[ - RowBox[{"x", "+", "\[CapitalDelta]"}], - RowBox[{"L", "+", - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{"\[CapitalDelta]", ",", "\[Gamma]"}], "]"}]}]], "]"}]}], - "]"}]}], "-", "y"}]}]}], "Code", - CellChangeTimes->{{3.9113879019426517`*^9, 3.91138810608572*^9}, { - 3.911388182414874*^9, 3.911388482660475*^9}, {3.911388787674255*^9, - 3.911388979350903*^9}, {3.911389141187207*^9, 3.911389159323999*^9}, { - 3.911390630736039*^9, 3.911390698837728*^9}, {3.911408926773992*^9, - 3.911408926935534*^9}, {3.916935312155489*^9, 3.916935312305293*^9}, { - 3.9173824759156227`*^9, 3.917382476601667*^9}, {3.91738376350004*^9, - 3.917383784452558*^9}, {3.917383943744508*^9, 3.917383954282363*^9}, { - 3.9173839922487173`*^9, 3.9173839928360653`*^9}, {3.9173844534077587`*^9, - 3.91738450986141*^9}, {3.917384708602298*^9, 3.917384711107472*^9}, { - 3.917384741504918*^9, 3.917384745117815*^9}, {3.917384781098084*^9, - 3.917384801570612*^9}, {3.917384922013281*^9, 3.917384925581356*^9}, { - 3.9173850860945387`*^9, 3.917385090363779*^9}, - 3.917385467785697*^9},ExpressionUUID->"0716117c-5381-46be-8b57-\ -f2cefa727879"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{"YIn", " ", "=", " ", "10"}], ";"}], "\n", - RowBox[{ - RowBox[{"XOut", " ", "=", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{"YIn", ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{"XOut", ",", " ", "\"\\""}], "]"}], ";"}], "\n", - RowBox[{"(*", - RowBox[{ - RowBox[{"DeltaL", " ", "=", " ", - RowBox[{ - SubscriptBox["\[Delta]", "Liq"], "[", - RowBox[{"YIn", ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ";"}], "*)"}]}], "\n", - RowBox[{ - RowBox[{"DeltaL", " ", "=", " ", - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{"YIn", ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"\[CurlyPhi]", "[", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], "+", "XOut"}], ",", - RowBox[{ - SubscriptBox["y", "0"], "+", "YIn"}], ",", - RowBox[{ - SubscriptBox["L", "0"], "+", - RowBox[{ - FractionBox["1", - SubscriptBox["K", "0"]], "DeltaL"}]}], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"]}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n"}], "\n", - RowBox[{ - RowBox[{"XIn", " ", "=", " ", "10"}], ";"}], "\n", - RowBox[{ - RowBox[{"YOut", " ", "=", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{"XIn", ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{"YOut", ",", " ", "\"\\""}], "]"}], ";"}], "\n", - RowBox[{"(*", - RowBox[{ - RowBox[{"DeltaL", " ", "=", " ", - RowBox[{ - SubscriptBox["\[Delta]", "Liq"], "[", - RowBox[{"XIn", ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ";"}], "*)"}]}], "\n", - RowBox[{ - RowBox[{"DeltaL", " ", "=", " ", - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{"XIn", ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"\[CurlyPhi]", "[", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], "+", "XIn"}], ",", - RowBox[{ - SubscriptBox["y", "0"], "+", "YOut"}], ",", - RowBox[{ - SubscriptBox["L", "0"], "+", "DeltaL"}], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"]}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"2", "/", - RowBox[{"(", - RowBox[{"YOut", "/", "XIn"}], ")"}]}], ",", " ", - "\"\<2/\!\(\*FractionBox[SubscriptBox[\(Y\), \(out\)], \ -SubscriptBox[\(X\), \(in\)]]\) = \>\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{ - RowBox[{"(", - RowBox[{"YIn", "/", "XOut"}], ")"}], "/", "2"}], ",", " ", - "\"\<\!\(\*FractionBox[SubscriptBox[\(Y\), \(in\)], SubscriptBox[\(X\), \ -\(out\)]]\)/2 = \>\""}], "]"}], ";"}]}], "Code", - CellChangeTimes->{{3.9173824881246443`*^9, 3.917382640107789*^9}, { - 3.917382703512905*^9, 3.917382797160448*^9}, {3.917382957143201*^9, - 3.9173829787289667`*^9}, {3.917383009866159*^9, 3.91738301413713*^9}, { - 3.9173830595966473`*^9, 3.9173830608297663`*^9}, {3.917383133177814*^9, - 3.917383139655548*^9}, {3.91738319090906*^9, 3.9173832152140627`*^9}, { - 3.917383329695533*^9, 3.9173833441047373`*^9}, {3.917383592136142*^9, - 3.917383601902347*^9}, {3.917383788771337*^9, 3.9173838368765507`*^9}, { - 3.917383998912529*^9, 3.917384002782464*^9}, {3.917384361112628*^9, - 3.917384432792912*^9}, {3.917384584058999*^9, 3.917384619281192*^9}, { - 3.9173846522116756`*^9, 3.9173846873539762`*^9}, {3.9173849883607492`*^9, - 3.917384990884163*^9}, {3.917385341574011*^9, 3.917385423584772*^9}}, - CellLabel-> - "In[789]:=",ExpressionUUID->"2687c350-1150-4951-bcf0-28364fa5bf73"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"XOut = \"\>", - "EchoLabel"], " ", - RowBox[{"-", "4.981498792389971`"}]}]], "Echo", - CellChangeTimes->{ - 3.91738542395758*^9},ExpressionUUID->"1aea5154-7487-4053-9b87-eaebfcd6471a"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"Validation = \"\>", - "EchoLabel"], " ", "0.`"}]], "Echo", - CellChangeTimes->{ - 3.917385423988958*^9},ExpressionUUID->"a705af7b-dd8d-4843-9013-\ -b64731e90a11"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"YOut = \"\>", - "EchoLabel"], " ", - RowBox[{"-", "19.900212359436182`"}]}]], "Echo", - CellChangeTimes->{ - 3.917385423997478*^9},ExpressionUUID->"d4db3b60-bed3-4a41-b647-\ -914ae220d498"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"Validation = \"\>", - "EchoLabel"], " ", - RowBox[{"-", "1.1102230246251565`*^-16"}]}]], "Echo", - CellChangeTimes->{ - 3.917385424017386*^9},ExpressionUUID->"66263894-11e5-431a-bd4e-\ -56e199c15a5b"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"2/\\!\\(\\*FractionBox[SubscriptBox[\\(Y\\), \\(out\\)], \ -SubscriptBox[\\(X\\), \\(in\\)]]\\) = \"\>", - "EchoLabel"], " ", - RowBox[{"-", "1.0050144007893715`"}]}]], "Echo", - CellChangeTimes->{ - 3.9173854240261383`*^9},ExpressionUUID->"77e6086f-c8ed-4881-ac7b-\ -1121513e1951"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"\\!\\(\\*FractionBox[SubscriptBox[\\(Y\\), \\(in\\)], \ -SubscriptBox[\\(X\\), \\(out\\)]]\\)/2 = \"\>", - "EchoLabel"], " ", - RowBox[{"-", "1.0037139841604084`"}]}]], "Echo", - CellChangeTimes->{ - 3.9173854240418663`*^9},ExpressionUUID->"35ae76a0-b666-481e-9dfe-\ -b6888da9c15f"] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Arbitrage", "Section", - CellChangeTimes->{{3.91138759286382*^9, 3.9113876060914783`*^9}, { - 3.911387637205267*^9, - 3.911387638219921*^9}},ExpressionUUID->"65d2b88d-22b2-481a-935c-\ -71bdce9f21f1"], - -Cell[TextData[{ - "We will assume there is some external price ", - Cell[BoxData[ - FormBox[ - SubscriptBox["S", "ext"], TraditionalForm]],ExpressionUUID-> - "cd8c38a7-d91f-4b2c-a735-67538238c600"], - "that we are given and decide whether or not to perform an arbitrage and, if \ -so, to get the optimal trade size. That is, the trade that gives the \ -arbitrageur maximal profit." -}], "Text", - CellChangeTimes->{{3.9113876414292507`*^9, 3.9113877131079063`*^9}, { - 3.911388488238481*^9, - 3.911388489476202*^9}},ExpressionUUID->"f20cba79-bbb2-4d1b-9349-\ -a349e8b0b7a4"], - -Cell[CellGroupData[{ - -Cell[TextData[{ - "We will need the marginal price ", - Cell[BoxData[ - FormBox[ - SubscriptBox["P", "M"], TraditionalForm]], - FormatType->TraditionalForm,ExpressionUUID-> - "17089434-c32f-45ea-a26f-0d3ed9139695"], - " of a swap to compute optimal arbitrages and a profit calculation ", - Cell[BoxData[ - FormBox[ - SubscriptBox["V", "A"], TraditionalForm]], - FormatType->TraditionalForm,ExpressionUUID-> - "72aada08-6991-4530-9774-3dd0a302c916"] -}], "Subsubsection", - CellChangeTimes->{{3.9113884927083406`*^9, 3.911388517540121*^9}, { - 3.911388583492565*^9, 3.911388585552403*^9}, {3.9113886383414087`*^9, - 3.911388651317487*^9}},ExpressionUUID->"d7131855-64d1-451f-98f3-\ -152b4aa9f3a5"], - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{"dX_", ",", "dY_"}], "]"}], " ", ":=", " ", - FractionBox[ - RowBox[{"-", "dY"}], "dX"]}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["V", "A"], "[", - RowBox[{"Pm_", ",", "Pext_", ",", "\[CapitalDelta]_"}], "]"}], " ", ":=", - " ", - RowBox[{ - RowBox[{"(", - RowBox[{"Pm", " ", "-", " ", "Pext"}], ")"}], - "\[CapitalDelta]"}]}]}], "Code", - CellChangeTimes->{{3.911388520734275*^9, 3.911388754553933*^9}, { - 3.911408038142099*^9, 3.9114080663589067`*^9}, {3.9114081240293818`*^9, - 3.91140812426967*^9}}, - CellLabel-> - "In[616]:=",ExpressionUUID->"fadd5b7c-a968-401d-9e42-d6ca30b3a2a6"] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Lower External Price:", "Subsection", - CellChangeTimes->{{3.911387716836122*^9, 3.9113877303598022`*^9}, { - 3.911389282458209*^9, 3.911389285697858*^9}, {3.9119143659239197`*^9, - 3.911914366787615*^9}},ExpressionUUID->"eed8b815-af5d-458f-8082-\ -a956f0fb88b9"], - -Cell[CellGroupData[{ - -Cell[TextData[{ - "We\[CloseCurlyQuote]ll let ", - Cell[BoxData[ - FormBox[ - SubscriptBox["O", "X"], TraditionalForm]],ExpressionUUID-> - "bea8f527-9f1f-453d-b766-3832796355bb"], - " be the optimal amount of X token to tender to achieve maximal arbitrage \ -profit." -}], "Subsubsection", - CellChangeTimes->{{3.911389287836197*^9, 3.911389310066874*^9}, { - 3.911389351175222*^9, - 3.911389351682972*^9}},ExpressionUUID->"b20dcf41-6dfe-404c-8167-\ -50b070efca5f"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - SubscriptBox["S", "ext"], " ", "=", " ", "1.8"}], ";", " ", - RowBox[{"Assert", "[", - RowBox[{ - SubscriptBox["S", "ext"], " ", "<", " ", - SubscriptBox["S", "0"]}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Lower"], "[", "in_", "]"}], " ", ":=", " ", - RowBox[{ - SubscriptBox["V", "A"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{"in", ",", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{"in", ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], "]"}], ",", " ", - SubscriptBox["S", "ext"], ",", " ", "in"}], "]"}]}], "\n", - RowBox[{"Plot", "[", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Lower"], "[", "v", "]"}], ",", " ", - RowBox[{"{", - RowBox[{"v", ",", "0", ",", "0.2"}], "}"}]}], "]"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{ - SubscriptBox["O", "X"], " ", "=", " ", - RowBox[{"ArgMax", "[", - RowBox[{ - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Lower"], "[", "x", "]"}], ",", " ", - RowBox[{"0", "<=", "x", "<=", - RowBox[{ - SubscriptBox["L", "0"], "-", - SubscriptBox["x", "0"]}]}]}], "}"}], ",", " ", "x"}], "]"}]}], - ";"}], " "}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["O", "X"], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], ",", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], " ", "+", " ", - SubscriptBox["O", "X"]}], ",", " ", - RowBox[{ - SubscriptBox["y", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}]}], "}"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["P", "F"], " ", "=", " ", - RowBox[{ - SubscriptBox["P", "X"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], " ", "+", " ", - SubscriptBox["O", "X"]}], ",", " ", - RowBox[{ - SubscriptBox["L", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[Delta]", "Liq"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - SubscriptBox["K", "0"], ",", " ", - SubscriptBox["\[Sigma]", "0"], ",", " ", - SubscriptBox["\[Tau]", "0"]}], "]"}]}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - SubscriptBox["P", "F"], ",", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"FullSimplify", "[", - RowBox[{"D", "[", - RowBox[{ - RowBox[{ - SubscriptBox["V", "A"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{"v", ",", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - "v", ",", "x", ",", "y", ",", "L", ",", "K", ",", "\[Sigma]", - ",", "\[Tau]", ",", "\[Gamma]"}], "]"}]}], "]"}], ",", " ", "S", - ",", " ", "v"}], "]"}], ",", "v"}], "]"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], - "\n", - RowBox[{"(*", " ", - RowBox[{ - "Check", " ", "that", " ", "the", " ", "trading", " ", "function", " ", - "is", " ", "invariant", " ", "under", " ", "the", " ", "swap"}], " ", - "*)"}]}], "\n", - RowBox[{ - RowBox[{"Assert", "[", - RowBox[{ - RowBox[{"Abs", "[", - RowBox[{"\[CurlyPhi]", "[", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], " ", "+", " ", - SubscriptBox["O", "X"]}], ",", " ", - RowBox[{ - SubscriptBox["y", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "Y"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - RowBox[{ - SubscriptBox["L", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{ - SubscriptBox["O", "X"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"]}], "]"}], "]"}], " ", "<", " ", - SuperscriptBox["10", - RowBox[{"-", "15"}]]}], "]"}], "\n"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"checkLower", "[", - RowBox[{ - "v_", ",", "x_", ",", "y_", ",", "L_", ",", "S_", ",", "K_", ",", - "\[Sigma]_", ",", "\[Tau]_", ",", "\[Gamma]_"}], "]"}], ":=", - RowBox[{ - RowBox[{"-", "S"}], "+", - FractionBox[ - RowBox[{ - SuperscriptBox["\[ExponentialE]", - RowBox[{ - RowBox[{"-", - FractionBox[ - RowBox[{ - SuperscriptBox["\[Sigma]", "2"], " ", "\[Tau]"}], "2"]}], "+", - RowBox[{ - SqrtBox["2"], " ", "\[Sigma]", " ", - SqrtBox["\[Tau]"], " ", - RowBox[{"InverseErfc", "[", - FractionBox[ - RowBox[{"2", " ", "x", " ", - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}]}], - RowBox[{"L", " ", - RowBox[{"(", - RowBox[{"v", "+", "x", "-", - RowBox[{"v", " ", "\[Gamma]"}]}], ")"}]}]], "]"}]}]}]], " ", - "K", " ", "x", " ", "\[Gamma]"}], - RowBox[{"v", "+", "x", "-", - RowBox[{"v", " ", "\[Gamma]"}]}]], "+", - FractionBox[ - RowBox[{"K", " ", "L", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}], " ", - RowBox[{"Erfc", "[", - RowBox[{ - FractionBox[ - RowBox[{"\[Sigma]", " ", - SqrtBox["\[Tau]"]}], - SqrtBox["2"]], "-", - RowBox[{"InverseErfc", "[", - FractionBox[ - RowBox[{"2", " ", "x", " ", - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}]}], - RowBox[{"L", " ", - RowBox[{"(", - RowBox[{"v", "+", "x", "-", - RowBox[{"v", " ", "\[Gamma]"}]}], ")"}]}]], "]"}]}], "]"}]}], - RowBox[{"2", " ", "x"}]]}]}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"numOne", "[", - RowBox[{ - "v_", ",", "x_", ",", "y_", ",", "L_", ",", "S_", ",", "K_", ",", - "\[Sigma]_", ",", "\[Tau]_", ",", "\[Gamma]_"}], "]"}], ":=", - RowBox[{ - SuperscriptBox["\[ExponentialE]", - RowBox[{ - RowBox[{"-", - FractionBox[ - RowBox[{ - SuperscriptBox["\[Sigma]", "2"], " ", "\[Tau]"}], "2"]}], "+", - RowBox[{ - SqrtBox["2"], " ", "\[Sigma]", " ", - SqrtBox["\[Tau]"], " ", - RowBox[{"InverseErfc", "[", - FractionBox[ - RowBox[{"2", " ", "x", " ", - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}]}], - RowBox[{"L", " ", - RowBox[{"(", - RowBox[{"v", "+", "x", "-", - RowBox[{"v", " ", "\[Gamma]"}]}], ")"}]}]], "]"}]}]}]], " ", "K", - " ", "x", " ", "\[Gamma]"}]}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"denomOne", "[", - RowBox[{ - "v_", ",", "x_", ",", "y_", ",", "L_", ",", "S_", ",", "K_", ",", - "\[Sigma]_", ",", "\[Tau]_", ",", "\[Gamma]_"}], "]"}], ":=", - RowBox[{"v", "+", "x", "-", - RowBox[{"v", " ", "\[Gamma]"}]}]}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"numTwo", "[", - RowBox[{ - "v_", ",", "x_", ",", "y_", ",", "L_", ",", "S_", ",", "K_", ",", - "\[Sigma]_", ",", "\[Tau]_", ",", "\[Gamma]_"}], "]"}], ":=", - RowBox[{"K", " ", "L", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}], " ", - RowBox[{"Erfc", "[", - RowBox[{ - FractionBox[ - RowBox[{"\[Sigma]", " ", - SqrtBox["\[Tau]"]}], - SqrtBox["2"]], "-", - RowBox[{"InverseErfc", "[", - FractionBox[ - RowBox[{"2", " ", "x", " ", - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}]}], - RowBox[{"L", " ", - RowBox[{"(", - RowBox[{"v", "+", "x", "-", - RowBox[{"v", " ", "\[Gamma]"}]}], ")"}]}]], "]"}]}], "]"}]}]}], - ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"denomTwo", "[", - RowBox[{ - "v_", ",", "x_", ",", "y_", ",", "L_", ",", "S_", ",", "K_", ",", - "\[Sigma]_", ",", "\[Tau]_", ",", "\[Gamma]_"}], "]"}], ":=", " ", - RowBox[{"2", " ", "x"}]}], ";"}], "\n"}], "Code", - CellChangeTimes->{{3.9113877530057907`*^9, 3.911387759870617*^9}, { - 3.911387791900612*^9, 3.911387835019555*^9}, {3.911389040938622*^9, - 3.911389111156786*^9}, {3.911389254777446*^9, 3.9113892749054213`*^9}, { - 3.911389313552825*^9, 3.9113896479421587`*^9}, {3.911389684738289*^9, - 3.911389710567501*^9}, {3.911389764399426*^9, 3.911390120184866*^9}, { - 3.911390172200013*^9, 3.9113903097104073`*^9}, {3.9113903414495697`*^9, - 3.911390422476118*^9}, {3.9113904688729887`*^9, 3.911390469654806*^9}, { - 3.911390530287198*^9, 3.9113905408414717`*^9}, {3.9113907054945307`*^9, - 3.91139073520191*^9}, {3.91139090146146*^9, 3.911390906904234*^9}, { - 3.911390946256706*^9, 3.911391064802693*^9}, {3.911391222082168*^9, - 3.9113912438598137`*^9}, {3.9114061934461813`*^9, 3.911406197897942*^9}, { - 3.911409265595838*^9, 3.911409282641177*^9}, {3.9114093384435053`*^9, - 3.911409346040655*^9}, {3.911409904932541*^9, 3.911409910625359*^9}, - 3.911410010310408*^9, {3.9114111732761717`*^9, 3.911411210958044*^9}, { - 3.911411248268466*^9, 3.911411313752475*^9}, {3.911413086350491*^9, - 3.9114131282498713`*^9}, {3.91141319914225*^9, 3.911413480385025*^9}, { - 3.91675072235946*^9, 3.916750736241868*^9}, {3.916750835562142*^9, - 3.916750853604291*^9}, {3.916933983207768*^9, 3.916933985584363*^9}, { - 3.916934589170532*^9, 3.916934742188787*^9}, {3.91738501952264*^9, - 3.917385025286654*^9}}, - CellLabel-> - "In[618]:=",ExpressionUUID->"6bec84e7-f813-4bb5-9a1e-8a3d86e897da"], - -Cell[BoxData[ - GraphicsBox[{{{}, {}, - TagBox[ - {RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[ - 1.], LineBox[CompressedData[" -1:eJwV0Gs0lAkAxvESOiI5mlxmdOHgoLK2mi5qPdJUW2or5JZby+5QCTXROq6t -SqEMM0ajUeZVZCUjxWjRNC69SsIJSQw1lcuYSC5F1n54zv/L8+ln/HuI0x8q -8+bN2z+3/yscELMaL/5sp8t3E+Z6a9odU1n2uISig5M6xzNXGvXbjRtEFl+l -rMKTZ8Y5n2hTdttyCy1iKDZgWkaLn9M00NNfG3CGYo9tHQWTlTRDiJJbVMIo -B5F/TzJdSrMEtbuj+STFD660lD13aVvwQt1LHEwJBb1ZdwFB2wNK736PFEkc -Ij4zvvZZeiJsXdY7NXkiOjgti+NC/LGClaRoCkmFIuKo2oqCIHwLOzpbKOWA -+2OTuYIeiiJLbYOsxkycC46yXeJ9Gm6qrbsMrQVIu8vhV9eHIytRX49SeRPd -B1+6R5hEYmLQRsu0SojYVXRd1o5ovPBzXRw1kAueTKYy6xwH9rqP7K6R2zCp -X1b1Z388QgXSMDVlPux9VxW3hP+NBsNCr3D9fzDcIxOrmp+HzpfZBiX1LqTj -j9Q9yy+g+a0vQ7TnHkzH+TOsE4loLz6fvLysGPp5wfM5BpexzZhd/uGhCOuH -bRrb8pLgzTcZcH5egqnlFyq63VPwVRLkvbPpPprfxd9fpLgCx9GNbZ0fS2FA -jt2LPpQKa+WdKJfvD6D/l5f5WQs2LvBbApymH4LOcpSrjrBx/bd4pzHdcmT4 -B4lPN6TBQiSPp+qLsTRba5LFTYeDTNltqlcBb1EP/6wXB4YGcdtbrR7hfbme -js8GLpg/auVqa/9FpKbEpm2Gi9MK9tUuRiWOOPUO/dSRAa07C5g8typQTtlO -JhXxQF26Oq7NrRp9XVdGIsMz8cXhRFPXxscY2qri4HjgGjitgtjU8sfQ++Au -LDLkI2qvcNfDTRLMBhZzKTI+pLVBOkUSCTbLkgRHyrKw00DrO9PhCS4KF43T -467DLCTs05fGJ9DzYKwZ8RDAXiAa335QijpP61cwy4ZQVENTeSnFXnqOFXso -G/4N/B0czxqoqvZSpTU34FvhmPzpTQ2U2qG+jN03UVFU3a4dWItJrrM/r/Qm -vC6p2+aN1IKp8a1kcGUOtmy1qJx/qg4BJi0zGgk5YI1o7bCeqcNluot75ucc -DMQ87zeKrceGkwuqPx8WIm/UJy/6Rz0c0wPT94qFkB4rZRYnPkVCCc2VYkaA -WvH+11saJBgTgTvzLxGYiValyjVJ9I31eAclEZBtNx001SYRPeoYbpVC4Dbp -n5KrS6JMoZZXmEpg/eu+ZoJGYnXA1EIRj8C+SZmncC0JnUOd9eJbBKI3vj1x -4xCJjwVpeCYh4Pdt+pceZxLxFvddk6UEGFVGS1a6zv3NyeD9tQQW7fISZXuS -2Gf8KqvpKYGMw2++CvxJ1PECJ1qbCBSxXsdcP0PiQQK7sOstAfbmqQNdESRc -zi2UCnoIsKYNjI0iSShjQ1/79BKwTXCXZsWQMPtuqt77nkB9evvCrIskeGGa -vvJBAgVuEx2dl0jQQ6zO3FYQuELTL6Amk2gZQhJTScCFcN3HTyWhFbi7rH+U -wCZm+PLONBL5ctvGgrE5v9UZw4ZcEvb+pu+Oj8/5DT+o9uCRkPupTK2ZnPMr -eZV67RqJsz7t2sNTBP4DDMpfbg== - "]]}, - Annotation[#, "Charting`Private`Tag$57056#1"]& ]}, {}}, - AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948], - Axes->{True, True}, - AxesLabel->{None, None}, - AxesOrigin->{0, 0}, - DisplayFunction->Identity, - Frame->{{False, False}, {False, False}}, - FrameLabel->{{None, None}, {None, None}}, - FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, - GridLines->{None, None}, - GridLinesStyle->Directive[ - GrayLevel[0.5, 0.4]], - ImagePadding->All, - Method->{ - "DefaultBoundaryStyle" -> Automatic, - "DefaultGraphicsInteraction" -> { - "Version" -> 1.2, "TrackMousePosition" -> {True, False}, - "Effects" -> { - "Highlight" -> {"ratio" -> 2}, "HighlightPoint" -> {"ratio" -> 2}, - "Droplines" -> { - "freeformCursorMode" -> True, - "placement" -> {"x" -> "All", "y" -> "None"}}}}, "DefaultMeshStyle" -> - AbsolutePointSize[6], "ScalingFunctions" -> None, - "CoordinatesToolOptions" -> {"DisplayFunction" -> ({ - (Identity[#]& )[ - Part[#, 1]], - (Identity[#]& )[ - Part[#, 2]]}& ), "CopiedValueFunction" -> ({ - (Identity[#]& )[ - Part[#, 1]], - (Identity[#]& )[ - Part[#, 2]]}& )}}, - PlotRange->{{0, 0.2}, {0., 0.03901618891876252}}, - PlotRangeClipping->True, - PlotRangePadding->{{ - Scaled[0.02], - Scaled[0.02]}, { - Scaled[0.05], - Scaled[0.05]}}, - Ticks->{Automatic, Automatic}]], "Output", - CellChangeTimes->{ - 3.917383563255979*^9, 3.917384872931774*^9, {3.9173849757089787`*^9, - 3.9173850261946993`*^9}, 3.917385114645734*^9}, - CellLabel-> - "Out[620]=",ExpressionUUID->"88457644-f8dc-4649-adb3-9b54c9fd1c06"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The optimal amount of X to tender is: \\!\\(\\*SubscriptBox[\\(\ -\[CapitalDelta]\\), \\(X\\)]\\) = \"\>", - "EchoLabel"], " ", "202.20119150794815`"}]], "Echo", - CellChangeTimes->{ - 3.917385114735537*^9},ExpressionUUID->"d1f17eb9-1e3f-45fe-8a49-\ -8b9eefc03ffb"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The amount out is: \\!\\(\\*SubscriptBox[\\(\[CapitalDelta]\\), \ -\\(Y\\)]\\) = \"\>", - "EchoLabel"], " ", - RowBox[{"-", "383.25524969204025`"}]}]], "Echo", - CellChangeTimes->{ - 3.9173851147430677`*^9},ExpressionUUID->"62407cb0-a174-480a-8d16-\ -3a55f4b36678"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The resulting reserves are: (\\!\\(\\*SubscriptBox[\\(x\\), \ -\\(1\\)]\\),\\!\\(\\*SubscriptBox[\\(y\\), \\(1\\)]\\)) = \"\>", - "EchoLabel"], " ", - RowBox[{"{", - RowBox[{"1202.2011915079481`", ",", "1616.74475030796`"}], "}"}]}]], "Echo",\ - - CellChangeTimes->{ - 3.91738511476458*^9},ExpressionUUID->"d6ae3e9d-138a-4eac-9161-a39196238226"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The final price of the pool is: P = \"\>", - "EchoLabel"], " ", "1.8049533724284241`"}]], "Echo", - CellChangeTimes->{ - 3.9173851147720413`*^9},ExpressionUUID->"a954a63c-1072-4dd1-a3b7-\ -6fea2ecdbf38"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The equation to do root finding with is: \"\>", - "EchoLabel"], " ", - TemplateBox[{ - RowBox[{ - RowBox[{"-", "S"}], "+", - FractionBox[ - RowBox[{ - SuperscriptBox["\[ExponentialE]", - RowBox[{ - RowBox[{"-", - FractionBox[ - RowBox[{ - SuperscriptBox["\[Sigma]", "2"], " ", "\[Tau]"}], "2"]}], - "+", - RowBox[{ - SqrtBox["2"], " ", "\[Sigma]", " ", - SqrtBox["\[Tau]"], " ", - RowBox[{"InverseErfc", "[", - FractionBox[ - RowBox[{"2", " ", - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}]}], - RowBox[{"L", "+", "v", "-", - RowBox[{"v", " ", "\[Gamma]"}]}]], "]"}]}]}]], " ", "K", - " ", - RowBox[{"(", - RowBox[{"L", "+", - RowBox[{"x", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}], - - RowBox[{"L", "+", "v", "-", - RowBox[{"v", " ", "\[Gamma]"}]}]], "+", - RowBox[{ - FractionBox["1", "2"], " ", "K", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}], " ", - RowBox[{"Erfc", "[", - RowBox[{ - FractionBox[ - RowBox[{"\[Sigma]", " ", - SqrtBox["\[Tau]"]}], - SqrtBox["2"]], "-", - RowBox[{"InverseErfc", "[", - FractionBox[ - RowBox[{"2", " ", - RowBox[{"(", - RowBox[{"v", "+", "x"}], ")"}]}], - RowBox[{"L", "+", "v", "-", - RowBox[{"v", " ", "\[Gamma]"}]}]], "]"}]}], "]"}]}]}], - RowBox[{"0", "\[LessEqual]", - FractionBox[ - RowBox[{"v", "+", "x"}], - RowBox[{"L", "+", "v", "-", - RowBox[{"v", " ", "\[Gamma]"}]}]], "\[LessEqual]", "1"}]}, - "ConditionalExpression"]}]], "Echo", - CellChangeTimes->{ - 3.91738511509683*^9},ExpressionUUID->"fca08186-95ea-4887-8401-ad9d766f2ded"] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Raise External Price:", "Subsection", - CellChangeTimes->{{3.9114058960816593`*^9, - 3.911405902149222*^9}},ExpressionUUID->"d44a8cc6-b4f0-4204-b250-\ -e68ad4e19d99"], - -Cell[CellGroupData[{ - -Cell[TextData[{ - "Let ", - Cell[BoxData[ - FormBox[ - SubscriptBox["O", "Y"], TraditionalForm]], - FormatType->TraditionalForm,ExpressionUUID-> - "daf8aba3-0522-4fdc-b0f6-095c37f44dc7"], - " be the optimal amount of Y token to tender to get max arbitrage profit." -}], "Subsubsection", - CellChangeTimes->{{3.9114059041043043`*^9, - 3.9114059228094807`*^9}},ExpressionUUID->"800e047e-b69c-4509-bda4-\ -30799fa9a63e"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - SubscriptBox["S", "ext"], " ", "=", " ", "2.2"}], ";", " ", - RowBox[{"Assert", "[", - RowBox[{ - SubscriptBox["S", "ext"], " ", ">", " ", - SubscriptBox["S", "0"]}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Raise"], "[", "in_", "]"}], " ", ":=", " ", - RowBox[{ - SubscriptBox["V", "A"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{"in", ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], ",", "in"}], "]"}], ",", " ", - - SubscriptBox["S", "ext"], ",", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{"in", ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], "]"}]}], "\n", - RowBox[{"Plot", "[", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Raise"], "[", "v", "]"}], ",", " ", - RowBox[{"{", - RowBox[{"v", ",", "0", ",", "0.2"}], "}"}]}], "]"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{ - SubscriptBox["O", "Y"], " ", "=", " ", - RowBox[{"ArgMax", "[", - RowBox[{ - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["Prof", "Raise"], "[", "y", "]"}], ",", " ", - RowBox[{"0", "<=", "y", "<=", - RowBox[{ - RowBox[{ - SubscriptBox["K", "0"], - SubscriptBox["L", "0"]}], "-", - SubscriptBox["y", "0"]}]}]}], "}"}], ",", " ", "y"}], "]"}]}], - ";"}], " "}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}], ",", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - RowBox[{ - SubscriptBox["y", "0"], " ", "+", " ", - SubscriptBox["O", "Y"]}]}], "}"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["P", "F"], " ", "=", " ", - RowBox[{ - SubscriptBox["P", "Y"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["y", "0"], " ", "+", " ", - SubscriptBox["O", "Y"]}], ",", " ", - RowBox[{ - SubscriptBox["L", "0"], " ", "+", " ", - RowBox[{ - FractionBox["1", - SubscriptBox["K", "0"]], - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}]}], ",", " ", - SubscriptBox["K", "0"], ",", " ", - SubscriptBox["\[Sigma]", "0"], ",", " ", - SubscriptBox["\[Tau]", "0"]}], "]"}]}], ";", " ", - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - SubscriptBox["P", "F"], ",", " ", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"FullSimplify", "[", - RowBox[{"D", "[", - RowBox[{ - RowBox[{ - SubscriptBox["V", "A"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["P", "M"], "[", - RowBox[{ - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - "v", ",", "x", ",", "y", ",", "L", ",", "K", ",", "\[Sigma]", - ",", "\[Tau]", ",", "\[Gamma]"}], "]"}], ",", "v"}], "]"}], ",", - " ", "S", ",", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - "v", ",", "x", ",", "y", ",", "L", ",", "K", ",", "\[Sigma]", ",", - "\[Tau]", ",", "\[Gamma]"}], "]"}]}], "]"}], ",", "v"}], "]"}], - "]"}], ",", " ", "\"\\""}], - "]"}], ";"}], "\n", - RowBox[{"(*", " ", - RowBox[{ - "Check", " ", "that", " ", "the", " ", "trading", " ", "function", " ", - "is", " ", "invariant", " ", "under", " ", "the", " ", "swap"}], " ", - "*)"}]}], "\n", - RowBox[{"Assert", "[", - RowBox[{ - RowBox[{"Abs", "[", - RowBox[{"\[CurlyPhi]", "[", - RowBox[{ - RowBox[{ - SubscriptBox["x", "0"], " ", "+", " ", - RowBox[{ - SubscriptBox["\[CapitalDelta]", "X"], "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", - SubscriptBox["L", "0"], ",", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}], ",", " ", - RowBox[{ - SubscriptBox["y", "0"], " ", "+", " ", - SubscriptBox["O", "Y"]}], ",", " ", - RowBox[{ - SubscriptBox["L", "0"], " ", "+", " ", - RowBox[{ - FractionBox["1", - SubscriptBox["K", "0"]], - RowBox[{ - SubscriptBox["\[Delta]", "in"], "[", - RowBox[{ - SubscriptBox["O", "Y"], ",", - SubscriptBox["\[Gamma]", "0"]}], "]"}]}]}], ",", " ", - SubscriptBox["K", "0"], ",", - SubscriptBox["\[Sigma]", "0"], ",", - SubscriptBox["\[Tau]", "0"]}], "]"}], "]"}], " ", "<", " ", - SuperscriptBox["10", - RowBox[{"-", "14"}]]}], "]"}]}], "Code", - CellChangeTimes->CompressedData[" -1:eJwdxU0oQwEAB/D3nsumRlKGcVhtIsVFESPPmNmBfFxmiqxZjWFoDcUFS5NW -aj7bYUQ+pmjJVsJuyhSJ5OsiankjbT5Ww/u/w6+fuL2nQUcRBJHBwr1iQZ5B -wtA+5bQCS3yaOnznza3H/kBRC247W+B+Jt19eCRqHOBeGq/oZNe8CuSYP1da -jQvMWiWmnVVNODz43Yq3RZdarJ+eMODQvH0K1+g8DuyaTL3FjvDMPfY+lr/g -DtnaF1YcrsRw9/AH0cWefUVc4LHfo2scv296NLLv2mxPuKycTNdKGdoel8Yd -pJngYh5Dq+SWN2xeLiGX2BWhUQqH1L+mCDujPO/DTuGbFYcbrVP4L0DNYnKH -z12Zs+HEN7xt7hRV4ip2FWdy77nM5Ce79NRN4droQQoeSxIJMWHTF+KwLVmG -Le/rm+f5DM2LqLew/6ffg5mEB27LUPMxDsWyTvA//Rnfcg== - "], - CellLabel-> - "In[683]:=",ExpressionUUID->"7ca95c98-841f-4a4d-8646-7ee5087c0cbe"], - -Cell[BoxData[ - GraphicsBox[{{{}, {}, - TagBox[ - {RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[ - 1.], LineBox[CompressedData[" -1:eJwV0nk41AkAxnH3VjOsh5GZIWrXdklbrVLE60oyZUWRUmzaBmUZDZWwM+Ws -IeNnKdKhlhw7a2yE1tWMaX9K0uEYR5aQI0fpcmTtH+/z/f/zvMsOB7n+rKSg -oLBrfv83e6ic2xC33sogIXXggPO0ZYCSTk0xTRMZ1N48O2qb1Qd6eNFF2lJQ -W6QG6tRBq623CldG0dZBJ0GJO0H5bPVysO5IKM0aomlzs17KQogFT5U4NBdI -FY02tlMYYHa1Nv1C84H58JegF5RVeKzmVR5IC8YH70KVRsoW0P7d5ZlYy8OB -+GHbQIYTOBsye1X74lFwjTHG8nWDAffCm8agZHhNDAcsyPDEFOenuUJJKkyD -uTmksQ9EqzTomQ2XMEVX7fzk4gsPlWcOjLVZcO2Ma0gqP4rMeN3FtMrr8Az7 -dsVmrQB8HF5HNarKhnJueytrfSAe+7irRwzdwrT3XHPPjmAINwwIOyZyMNKk -pb23i4PgLAlHdew2DEWmzk0BJ1DPKPQK0y2A00PZbgVGKDTfzdWPMf/AaAN9 -9Eh+GJo6ve3FO/7Eq5OhiyMOnkJLUYxgyd0i+Ff3Lc9aEI6ty4Rl/aVinDJk -MCbTzuBgxjdDbo+KobWCvXPWIRLva/0Pbmv8C+PaN2K3yqPAerupWT5wBwWB -BT1p23lYO5YXsWe6BBuXWkXTDPiIzXh6xHWmFC3Gs7tM+vm44sx3ndQqQ7WR -9aRB9VmsFPfxmbrleJ8X+KIg4Rxsu8e6jBZXIDHdosvSJRoMOs/m2ep7UKbW -Xr29IgbsL3V9qiZ/wzdnpFI0HoMTb4QXO+wr8XwqNyyxPhbUPGV2ukcVRHe5 -LM71ODC1jXnNHtUgFUJujrPj8c72eGPHphpsNvMLcrROQOqzrF+Ty2ow8RlN -FovOI8Ip26HUrBYO+45zTZ+ch6TOX1NUWwvdlpGjqrkXsI1OnWbb3odezxut -kCABvgvivH7XcB9V6ozxUsdEWGeJP9i4SLBwTfjldO0kZIulekpPJNBkICVS -ngTf+gy71P1SFC0/mm5RfBHeFSzB63YprsnsZPWWyagQVbdo+NXBr3Lgbm/+ -/K8S1MxzJ+qwvITDmtMRYovFykrFEBmuC5wHX58WgjtBtVs7K8NM4rFjVv1C -DEU9GtT/9QGGLdYoHmalIPftodzILw+gZhDLihelQBJwh10U/w88kmvYTCYB -ZsUrx98XkvA9fCYvPIrAbKQKs49CghdW027OI9BtYzRspEHiyiIFjWk+gRzS -N/GWFglThl/ImRgCP7T1NN3UI7FFedI8QkBg56fu/dkmJFqDJ+sjMwhEbuo8 -fm03iahifj+vlIDP1IzlSzcSV2UUuk0ZAfsq/a8N3UkUyM/vUKwgsMjBS3x1 -PwlH/5OF/EoCaXvb32f5ktjjphtyVkpAxG2LuhJKIlW+eubcUwLCzZ9/7DhJ -Qmevu4n9cwLcGfoy/XASpNLpQyrNBMyj90kyo0gIpYU10W0EHhAtX2XGkbgk -ehgd000g3+NjqzyBhHZeXcm2HgJJerr5TAEJSXNpv+orAntuuu/MSCZxg57o -GDtAwIwdtkSeQmK7LPC0w+C8n3HaKOO3eR91p3y14Xm/0ZJqz3QSrvcM22Uj -837FL5IvXybxvf5bStwogf8AM+pSBQ== - "]]}, - Annotation[#, "Charting`Private`Tag$100831#1"]& ]}, {}}, - AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948], - Axes->{True, True}, - AxesLabel->{None, None}, - AxesOrigin->{0, 0}, - DisplayFunction->Identity, - Frame->{{False, False}, {False, False}}, - FrameLabel->{{None, None}, {None, None}}, - FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, - GridLines->{None, None}, - GridLinesStyle->Directive[ - GrayLevel[0.5, 0.4]], - ImagePadding->All, - Method->{ - "DefaultBoundaryStyle" -> Automatic, - "DefaultGraphicsInteraction" -> { - "Version" -> 1.2, "TrackMousePosition" -> {True, False}, - "Effects" -> { - "Highlight" -> {"ratio" -> 2}, "HighlightPoint" -> {"ratio" -> 2}, - "Droplines" -> { - "freeformCursorMode" -> True, - "placement" -> {"x" -> "All", "y" -> "None"}}}}, "DefaultMeshStyle" -> - AbsolutePointSize[6], "ScalingFunctions" -> None, - "CoordinatesToolOptions" -> {"DisplayFunction" -> ({ - (Identity[#]& )[ - Part[#, 1]], - (Identity[#]& )[ - Part[#, 2]]}& ), "CopiedValueFunction" -> ({ - (Identity[#]& )[ - Part[#, 1]], - (Identity[#]& )[ - Part[#, 2]]}& )}}, - PlotRange->{{0, 0.2}, {0., 0.01946459780131365}}, - PlotRangeClipping->True, - PlotRangePadding->{{ - Scaled[0.02], - Scaled[0.02]}, { - Scaled[0.05], - Scaled[0.05]}}, - Ticks->{Automatic, Automatic}]], "Output", - CellChangeTimes->{ - 3.9173835690887947`*^9, 3.917385059548512*^9, {3.9173851196395884`*^9, - 3.917385128134555*^9}, 3.9173852324926853`*^9, 3.917385290081284*^9}, - CellLabel-> - "Out[685]=",ExpressionUUID->"1f3d487e-7d60-4563-a2b3-f3aa65c1d146"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The optimal amount of Y to tender is: \\!\\(\\*SubscriptBox[\\(\ -\[CapitalDelta]\\), \\(Y\\)]\\) = \"\>", - "EchoLabel"], " ", "364.4731544001954`"}]], "Echo", - CellChangeTimes->{ - 3.917385290172243*^9},ExpressionUUID->"20a8471e-d48d-4dc1-8a0f-\ -2b45a51698ee"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The amount out is: \\!\\(\\*SubscriptBox[\\(\[CapitalDelta]\\), \ -\\(X\\)]\\) = \"\>", - "EchoLabel"], " ", - RowBox[{"-", "173.56889322451593`"}]}]], "Echo", - CellChangeTimes->{ - 3.917385290180708*^9},ExpressionUUID->"5cd69ac1-3ee9-4f3c-b5cf-\ -95d07eb0ff1c"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The resulting reserves are: (\\!\\(\\*SubscriptBox[\\(x\\), \ -\\(1\\)]\\),\\!\\(\\*SubscriptBox[\\(y\\), \\(1\\)]\\)) = \"\>", - "EchoLabel"], " ", - RowBox[{"{", - RowBox[{"826.4311067754841`", ",", "2364.4731544001957`"}], - "}"}]}]], "Echo", - CellChangeTimes->{ - 3.917385290202286*^9},ExpressionUUID->"0834851c-ee77-4202-aa72-\ -ad7a0f04c869"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The final price of the pool is: P = \"\>", - "EchoLabel"], " ", "2.194468360784738`"}]], "Echo", - CellChangeTimes->{ - 3.917385290210438*^9},ExpressionUUID->"e88a31f0-9ce3-43a8-a4fe-\ -062f673969b4"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The equation to do root finding with is: \"\>", - "EchoLabel"], " ", - TemplateBox[{ - RowBox[{ - RowBox[{"-", "1"}], "+", - FractionBox[ - RowBox[{ - SuperscriptBox["\[ExponentialE]", - RowBox[{ - RowBox[{"-", - FractionBox[ - RowBox[{ - SuperscriptBox["\[Sigma]", "2"], " ", "\[Tau]"}], "2"]}], - "+", - RowBox[{ - SqrtBox["2"], " ", "\[Sigma]", " ", - SqrtBox["\[Tau]"], " ", - RowBox[{"InverseErfc", "[", - FractionBox[ - RowBox[{"2", " ", - RowBox[{"(", - RowBox[{"v", "+", "y"}], ")"}]}], - RowBox[{ - RowBox[{"K", " ", "L"}], "+", "v", "-", - RowBox[{"v", " ", "\[Gamma]"}]}]], "]"}]}]}]], " ", "S", - " ", - RowBox[{"(", - RowBox[{ - RowBox[{"K", " ", "L"}], "+", - RowBox[{"y", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}]}]}], ")"}]}], - - RowBox[{"K", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"K", " ", "L"}], "+", "v", "-", - RowBox[{"v", " ", "\[Gamma]"}]}], ")"}]}]], "+", - FractionBox[ - RowBox[{"S", " ", - RowBox[{"(", - RowBox[{ - RowBox[{"-", "1"}], "+", "\[Gamma]"}], ")"}], " ", - RowBox[{"Erfc", "[", - RowBox[{ - FractionBox[ - RowBox[{"\[Sigma]", " ", - SqrtBox["\[Tau]"]}], - SqrtBox["2"]], "-", - RowBox[{"InverseErfc", "[", - FractionBox[ - RowBox[{"2", " ", - RowBox[{"(", - RowBox[{"v", "+", "y"}], ")"}]}], - RowBox[{ - RowBox[{"K", " ", "L"}], "+", "v", "-", - RowBox[{"v", " ", "\[Gamma]"}]}]], "]"}]}], "]"}]}], - RowBox[{"2", " ", "K"}]]}], - RowBox[{"0", "\[LessEqual]", - FractionBox[ - RowBox[{"v", "+", "y"}], - RowBox[{ - RowBox[{"K", " ", "L"}], "+", "v", "-", - RowBox[{"v", " ", "\[Gamma]"}]}]], "\[LessEqual]", "1"}]}, - "ConditionalExpression"]}]], "Echo", - CellChangeTimes->{ - 3.917385290654476*^9},ExpressionUUID->"24b12cbb-7a22-45fd-bb9e-\ -d5824114ff9b"] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]], - -Cell[CellGroupData[{ - -Cell["Parameter Updates", "Section", - CellChangeTimes->{{3.9114106614664173`*^9, - 3.911410663603334*^9}},ExpressionUUID->"b9760121-93f2-4105-bc65-\ -e6b3dbe04aec"], - -Cell[CellGroupData[{ - -Cell["\<\ -We want to let parameters change, then determine the new L from them.\ -\>", "Subsection", - CellChangeTimes->{{3.9114115124928417`*^9, - 3.911411520281617*^9}},ExpressionUUID->"bf3ecf5a-6ea2-4f9a-a236-\ -2d3956e9c134"], - -Cell[CellGroupData[{ - -Cell[BoxData[{ - RowBox[{ - RowBox[{ - RowBox[{"{", - RowBox[{ - SubscriptBox["K", "1"], ",", - SubscriptBox["\[Sigma]", "1"], ",", - SubscriptBox["\[Tau]", "1"]}], "}"}], " ", "=", " ", - RowBox[{"{", - RowBox[{ - RowBox[{ - SubscriptBox["K", "0"], " ", "+", " ", - FractionBox["1", "10"]}], ",", " ", - RowBox[{ - SubscriptBox["\[Sigma]", "0"], " ", "-", " ", - FractionBox["1", "20"]}], ",", " ", - SubscriptBox["\[Tau]", "0"]}], "}"}]}], ";"}], "\n", - RowBox[{ - RowBox[{ - SubscriptBox["L", "1"], " ", "=", " ", - RowBox[{"L", " ", "/.", " ", - RowBox[{"FindRoot", "[", - RowBox[{ - RowBox[{"\[CurlyPhi]", "[", - RowBox[{ - SubscriptBox["x", "0"], ",", - SubscriptBox["y", "0"], ",", "L", ",", - SubscriptBox["K", "1"], ",", - SubscriptBox["\[Sigma]", "1"], ",", - SubscriptBox["\[Tau]", "1"]}], "]"}], ",", " ", - RowBox[{"{", - RowBox[{"L", ",", - SubscriptBox["L", "0"]}], "}"}]}], "]"}]}]}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - SubscriptBox["L", "0"], ",", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}], "\n", - RowBox[{ - RowBox[{"Echo", "[", - RowBox[{ - RowBox[{"N", "[", - RowBox[{ - SubscriptBox["L", "1"], ",", "18"}], "]"}], ",", " ", - "\"\\""}], "]"}], ";"}]}], "Code", - CellChangeTimes->{{3.911411526467024*^9, 3.911411558889496*^9}, { - 3.911411603270329*^9, 3.911411726104031*^9}, {3.911411854447959*^9, - 3.911411871785728*^9}, {3.911412038711419*^9, 3.9114121340202703`*^9}, { - 3.911412179397016*^9, 3.91141220168312*^9}, {3.911412234164196*^9, - 3.9114122397709723`*^9}, {3.911412325036952*^9, 3.9114123356623907`*^9}, { - 3.91141236997156*^9, 3.911412427698132*^9}, {3.911412458150606*^9, - 3.911412466280922*^9}, {3.9114126475927057`*^9, 3.9114126927861547`*^9}}, - CellLabel-> - "In[477]:=",ExpressionUUID->"88153533-d3ba-42e3-8671-5c87d6eba466"], - -Cell[CellGroupData[{ - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The original liquidity was: \\!\\(\\*SubscriptBox[\\(L\\), \\(0\ -\\)]\\) = \"\>", - "EchoLabel"], " ", - "1.07205816303780375296378578465914117862`18."}]], "Echo", - CellChangeTimes->{ - 3.911412693179192*^9},ExpressionUUID->"9c86a598-6ad7-4cdc-b7d3-\ -f17754fbb4f8"], - -Cell[BoxData[ - RowBox[{ - TagBox["\<\"The new liquidity after parameter changes is: \ -\\!\\(\\*SubscriptBox[\\(L\\), \\(1\\)]\\) = \"\>", - "EchoLabel"], " ", "1.0633573081332175`"}]], "Echo", - CellChangeTimes->{ - 3.9114126932060432`*^9},ExpressionUUID->"edb1d49d-7246-436e-85d1-\ -f3028622cb8d"] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]] -}, -WindowSize->{1210, 1233}, -WindowMargins->{{Automatic, 12}, {-819, Automatic}}, -PrintingCopies->1, -PrintingPageRange->{1, Automatic}, -FrontEndVersion->"13.2 for Mac OS X ARM (64-bit) (January 31, 2023)", -StyleDefinitions->FrontEnd`FileName[{$RootDirectory, "Users", "colin", - "Documents"}, "DarkMode.nb", CharacterEncoding -> "UTF-8"], -ExpressionUUID->"13daad44-0d0d-4117-a120-aa865447a233" -] -(* End of Notebook Content *) - -(* Internal cache information *) -(*CellTagsOutline -CellTagsIndex->{} -*) -(*CellTagsIndex -CellTagsIndex->{} -*) -(*NotebookFileOutline -Notebook[{ -Cell[CellGroupData[{ -Cell[422, 15, 185, 3, 238, "Title",ExpressionUUID->"2003d08a-fff7-4f74-8623-7a0823c9cafa"], -Cell[CellGroupData[{ -Cell[632, 22, 221, 5, 158, "Section",ExpressionUUID->"514be430-48c5-4dc6-92af-6b1c3a5b8586"], -Cell[CellGroupData[{ -Cell[878, 31, 222, 5, 81, "Subsection",ExpressionUUID->"f16f1652-ed41-4414-8c9b-6b6d5d8061ac"], -Cell[1103, 38, 573, 13, 54, "Code",ExpressionUUID->"8255c47c-fa0b-4fdd-8638-752453aca613"] -}, Open ]], -Cell[CellGroupData[{ -Cell[1713, 56, 202, 3, 81, "Subsection",ExpressionUUID->"b3dd161e-0b53-4183-b30c-be7844f26477"], -Cell[1918, 61, 803, 18, 86, "Code",ExpressionUUID->"25d6c1c4-f902-41e0-8746-c63f6b03d94e"] -}, Open ]], -Cell[CellGroupData[{ -Cell[2758, 84, 307, 7, 81, "Subsection",ExpressionUUID->"f601d02f-f91e-4780-a166-a78097a54f48"], -Cell[3068, 93, 1088, 32, 161, "Code",ExpressionUUID->"d5d16a82-3e60-44ff-affc-b50eb9144304"] -}, Open ]], -Cell[CellGroupData[{ -Cell[4193, 130, 296, 7, 81, "Subsection",ExpressionUUID->"009a24ad-ebe5-4d73-bdda-a7839592332a"], -Cell[CellGroupData[{ -Cell[4514, 141, 244, 6, 67, "Subsubsection",ExpressionUUID->"3b15f5e3-f420-4095-899a-506c7286cc40"], -Cell[4761, 149, 2307, 62, 192, "Code",ExpressionUUID->"3950a1e9-9c32-45c4-b5ef-404c37d6ef65"] -}, Open ]], -Cell[CellGroupData[{ -Cell[7105, 216, 253, 6, 67, "Subsubsection",ExpressionUUID->"6228385e-cfd2-4bd0-97f4-58c98a5a994e"], -Cell[7361, 224, 1215, 35, 123, "Code",ExpressionUUID->"cdbca2c9-2426-4adf-8516-6c22e3b352b1"] -}, Open ]], -Cell[CellGroupData[{ -Cell[8613, 264, 186, 3, 67, "Subsubsection",ExpressionUUID->"18015876-38da-4fa9-82b7-a417d745ef90"], -Cell[8802, 269, 681, 18, 68, "Code",ExpressionUUID->"a65cb5ec-cdac-40e0-bb49-f3d8157592d9"] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[9544, 294, 285, 7, 101, "Section",ExpressionUUID->"da815218-0c74-4720-a5c9-76f45781c5e2"], -Cell[CellGroupData[{ -Cell[9854, 305, 305, 7, 81, "Subsection",ExpressionUUID->"d461a415-44ca-4804-8248-6137a0f9449f"], -Cell[CellGroupData[{ -Cell[10184, 316, 1860, 44, 105, "Code",ExpressionUUID->"8d262a91-37a1-41fb-b1b3-ae8191b1ccda"], -Cell[CellGroupData[{ -Cell[12069, 364, 230, 6, 38, "Echo",ExpressionUUID->"895b6ae3-47b6-4cb6-8323-a3880b554134"], -Cell[12302, 372, 258, 7, 53, "Echo",ExpressionUUID->"07685432-a00e-4b16-9c03-35ac387559f6"], -Cell[12563, 381, 235, 6, 38, "Echo",ExpressionUUID->"91c9e7bc-ac3f-4161-83b8-937782638460"], -Cell[12801, 389, 242, 6, 38, "Echo",ExpressionUUID->"64852520-3a78-42d5-bb48-a4c377721c93"] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[13104, 402, 307, 7, 81, "Subsection",ExpressionUUID->"a6874bc0-590c-4cb3-9d20-f010a014a154"], -Cell[CellGroupData[{ -Cell[13436, 413, 1126, 28, 86, "Code",ExpressionUUID->"085ca656-cc94-43cf-a8c6-c116e23e4910"], -Cell[CellGroupData[{ -Cell[14587, 445, 271, 7, 38, "Echo",ExpressionUUID->"84bc3cd5-a9d3-4e32-9c9a-3e283a554458"], -Cell[14861, 454, 232, 6, 38, "Echo",ExpressionUUID->"72757538-71b4-4792-95f9-111ddaec7be0"] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[15142, 466, 251, 6, 67, "Subsubsection",ExpressionUUID->"d0f44536-b00f-4974-8c75-dd65dd319645"], -Cell[CellGroupData[{ -Cell[15418, 476, 1719, 46, 86, "Code",ExpressionUUID->"57112165-db6f-447c-9713-f9c85c6d4828"], -Cell[CellGroupData[{ -Cell[17162, 526, 307, 8, 38, "Echo",ExpressionUUID->"8a3a2fc1-7c6c-4584-8ff6-5f25897a487f"], -Cell[17472, 536, 315, 8, 38, "Echo",ExpressionUUID->"7b91e2a0-f903-4c01-902d-710d8e9c25ee"] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[17848, 551, 224, 4, 67, "Subsubsection",ExpressionUUID->"0dabba71-0908-48dd-b11c-9fc06ac2d79b"], -Cell[CellGroupData[{ -Cell[18097, 559, 1319, 37, 86, "Code",ExpressionUUID->"05df5500-1e66-49a9-afd7-256365f8b6dc"], -Cell[19419, 598, 211, 6, 38, "Echo",ExpressionUUID->"15c46bab-62f8-4c23-be66-af5cfc278ceb"] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[19679, 610, 284, 6, 106, "Subsubsection",ExpressionUUID->"6c78f375-83c5-40c5-a26f-9dfafb83427b"], -Cell[19966, 618, 1387, 43, 98, "Code",ExpressionUUID->"05cdeb1a-e1b0-40a7-af51-51ab9b75cc2e"] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[21414, 668, 155, 3, 101, "Section",ExpressionUUID->"e0558e89-2c12-471a-af64-7b6a1457eb4d"], -Cell[CellGroupData[{ -Cell[21594, 675, 290, 7, 81, "Subsection",ExpressionUUID->"2f7348b3-443c-4a22-943e-943b7962999e"], -Cell[21887, 684, 3602, 93, 214, "Code",ExpressionUUID->"0716117c-5381-46be-8b57-f2cefa727879"], -Cell[CellGroupData[{ -Cell[25514, 781, 4710, 130, 602, "Code",ExpressionUUID->"2687c350-1150-4951-bcf0-28364fa5bf73"], -Cell[CellGroupData[{ -Cell[30249, 915, 224, 6, 38, "Echo",ExpressionUUID->"1aea5154-7487-4053-9b87-eaebfcd6471a"], -Cell[30476, 923, 200, 6, 38, "Echo",ExpressionUUID->"a705af7b-dd8d-4843-9013-b64731e90a11"], -Cell[30679, 931, 228, 7, 38, "Echo",ExpressionUUID->"d4db3b60-bed3-4a41-b647-914ae220d498"], -Cell[30910, 940, 239, 7, 38, "Echo",ExpressionUUID->"66263894-11e5-431a-bd4e-56e199c15a5b"], -Cell[31152, 949, 320, 8, 63, "Echo",ExpressionUUID->"77e6086f-c8ed-4881-ac7b-1121513e1951"], -Cell[31475, 959, 320, 8, 63, "Echo",ExpressionUUID->"35ae76a0-b666-481e-9dfe-b6888da9c15f"] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[31868, 975, 204, 4, 101, "Section",ExpressionUUID->"65d2b88d-22b2-481a-935c-71bdce9f21f1"], -Cell[32075, 981, 568, 13, 81, "Text",ExpressionUUID->"f20cba79-bbb2-4d1b-9349-a349e8b0b7a4"], -Cell[CellGroupData[{ -Cell[32668, 998, 692, 17, 108, "Subsubsection",ExpressionUUID->"d7131855-64d1-451f-98f3-152b4aa9f3a5"], -Cell[33363, 1017, 684, 20, 107, "Code",ExpressionUUID->"fadd5b7c-a968-401d-9e42-d6ca30b3a2a6"] -}, Open ]], -Cell[CellGroupData[{ -Cell[34084, 1042, 268, 4, 81, "Subsection",ExpressionUUID->"eed8b815-af5d-458f-8082-a956f0fb88b9"], -Cell[CellGroupData[{ -Cell[34377, 1050, 460, 12, 107, "Subsubsection",ExpressionUUID->"b20dcf41-6dfe-404c-8167-50b070efca5f"], -Cell[CellGroupData[{ -Cell[34862, 1066, 11721, 323, 698, "Code",ExpressionUUID->"6bec84e7-f813-4bb5-9a1e-8a3d86e897da"], -Cell[46586, 1391, 3524, 78, 342, "Output",ExpressionUUID->"88457644-f8dc-4649-adb3-9b54c9fd1c06"], -Cell[CellGroupData[{ -Cell[50135, 1473, 302, 7, 38, "Echo",ExpressionUUID->"d1f17eb9-1e3f-45fe-8a49-8b9eefc03ffb"], -Cell[50440, 1482, 303, 8, 38, "Echo",ExpressionUUID->"62407cb0-a174-480a-8d16-3a55f4b36678"], -Cell[50746, 1492, 385, 9, 38, "Echo",ExpressionUUID->"d6ae3e9d-138a-4eac-9161-a39196238226"], -Cell[51134, 1503, 241, 6, 38, "Echo",ExpressionUUID->"a954a63c-1072-4dd1-a3b7-6fea2ecdbf38"], -Cell[51378, 1511, 2181, 61, 202, "Echo",ExpressionUUID->"fca08186-95ea-4887-8401-ad9d766f2ded"] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[53632, 1580, 171, 3, 81, "Subsection",ExpressionUUID->"d44a8cc6-b4f0-4204-b250-e68ad4e19d99"], -Cell[CellGroupData[{ -Cell[53828, 1587, 413, 11, 68, "Subsubsection",ExpressionUUID->"800e047e-b69c-4509-bda4-30799fa9a63e"], -Cell[CellGroupData[{ -Cell[54266, 1602, 7526, 215, 417, "Code",ExpressionUUID->"7ca95c98-841f-4a4d-8646-7ee5087c0cbe"], -Cell[61795, 1819, 3553, 78, 338, "Output",ExpressionUUID->"1f3d487e-7d60-4563-a2b3-f3aa65c1d146"], -Cell[CellGroupData[{ -Cell[65373, 1901, 301, 7, 38, "Echo",ExpressionUUID->"20a8471e-d48d-4dc1-8a0f-2b45a51698ee"], -Cell[65677, 1910, 301, 8, 38, "Echo",ExpressionUUID->"5cd69ac1-3ee9-4f3c-b5cf-95d07eb0ff1c"], -Cell[65981, 1920, 391, 10, 38, "Echo",ExpressionUUID->"0834851c-ee77-4202-aa72-ad7a0f04c869"], -Cell[66375, 1932, 238, 6, 38, "Echo",ExpressionUUID->"e88a31f0-9ce3-43a8-a4fe-062f673969b4"], -Cell[66616, 1940, 2460, 70, 190, "Echo",ExpressionUUID->"24b12cbb-7a22-45fd-bb9e-d5824114ff9b"] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]], -Cell[CellGroupData[{ -Cell[69161, 2019, 164, 3, 101, "Section",ExpressionUUID->"b9760121-93f2-4105-bc65-e6b3dbe04aec"], -Cell[CellGroupData[{ -Cell[69350, 2026, 227, 5, 81, "Subsection",ExpressionUUID->"bf3ecf5a-6ea2-4f9a-a236-2d3956e9c134"], -Cell[CellGroupData[{ -Cell[69602, 2035, 2145, 57, 168, "Code",ExpressionUUID->"88153533-d3ba-42e3-8671-5c87d6eba466"], -Cell[CellGroupData[{ -Cell[71772, 2096, 306, 8, 38, "Echo",ExpressionUUID->"9c86a598-6ad7-4cdc-b7d3-f17754fbb4f8"], -Cell[72081, 2106, 298, 7, 38, "Echo",ExpressionUUID->"edb1d49d-7246-436e-85d1-f3028622cb8d"] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]] -}, Open ]] -} -] -*) - diff --git a/documentation/src/SUMMARY.md b/documentation/src/SUMMARY.md deleted file mode 100644 index f9dfbe9ea..000000000 --- a/documentation/src/SUMMARY.md +++ /dev/null @@ -1,19 +0,0 @@ -# Summary -[Excalibur](./index.md) - -- [App](./app/index.md) - - [Architecture](./app/architecture.md) - - - [Ledger](./app/ledger.md) - - [Development](./app/development/index.md) -- [Contracts](./contracts/index.md) - - [Dynamic Function Market Makers](./dynamic_function_market_makers/index.md) - - [Notation and Terminology](./dynamic_function_market_makers/notation_and_terminology.md) - - [Geometric Mean](./dynamic_function_market_makers/geometric_mean.md) - - [Log Normal](./dynamic_function_market_makers/log_normal.md) -- [Simulation](./simulation/index.md) - - [Agents](./simulation/agents/index.md) - - [Arbitrageur](./simulation/agents/arbitrageur.md) - - [Analysis](./simulation/analysis.md) - - [Dollar Cost Averaging](./simulation/dollar_cost_averaging.md) - - [Volatility Targeting](./simulation/volatility_targeting.md) \ No newline at end of file diff --git a/documentation/src/app/architecture.md b/documentation/src/app/architecture.md deleted file mode 100644 index 4ff56f2a9..000000000 --- a/documentation/src/app/architecture.md +++ /dev/null @@ -1,38 +0,0 @@ -# Traditional MVC Architecture -Excaliburs user interface is designed to follow the Model-View-Controller architecture. - -![Traditional MVC Diagram](/assets/MVC.png) - -- **Model:** This is the part of the system that handles data and business logic. It's responsible for retrieving data and converting it into meaningful concepts for your application. This could involve communicating with a database, processing data, or performing calculations. - -- **View:** This is the part of the system that handles the presentation of data to the user. It's responsible for taking the data from the Model and displaying it in a format that the user can understand. This is often in the form of a user interface. -- **Controller:** This is the part of the system that handles user input. It's responsible for interpreting the user's actions, such as button clicks or key presses, and deciding what to do with them. This often involves updating the Model or the View. -- Model and view do not communication. -- Data flows in both the model and view is unidirectional. - - -## Hierarchical MVC - -![Hierarchical MVC Diagram](/assets/HMVC.png) - -This is what we have now. -The main difference with the Hierarchical MVC is that there can be child MVCs and parent MVCs with one cononical root parant. -The parent child communication happens between the component controllers. -We are still exploring the pros and cons of this architecture. - -**Pros:** -- "modularization" of content structures. An example might be comments, ratings, Twitter or blog RSS feed displays. -It is essentially a piece of content that needs to be displayed across multiple pages, and possibly even in different places - -**cons:** -- HMVC can be more complex than traditional MVC, which can make it harder for beginners to understand and use. -- HMVC can have a performance impact on your application because it requires more resources to load and execute code across multiple modules (we have not found this to be a problem yet) - - -## Middleware Pattern -The other catagory of MVC patterns we have considered is the middleware patterns. -This is also what node.js does under the hood. -One such middleware pattern we found compelling was the mediator pattern. -Differences between middleware and mediator is that the middleware pattern always outputs json while mediator outputs whatever we want. - -![The Mediator Pattern](/assets/Mediator.png) \ No newline at end of file diff --git a/documentation/src/app/development/index.md b/documentation/src/app/development/index.md deleted file mode 100644 index 32c92f87a..000000000 --- a/documentation/src/app/development/index.md +++ /dev/null @@ -1,16 +0,0 @@ -# Development -Miscellaneous development notes. - -## Testing CI/CD Locally - -To test CI/CD locally, you can use Docker and Act. Here are the steps: - -1. Install Docker: You can download it from the official Docker website and follow the installation instructions. - -2. Install Act: Act is a tool that allows you to run your GitHub Actions locally. You can install it by running `curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash`. You can also install with `brew install act` if you are on a Mac. - -3. Run Act: Navigate to your project directory and run `act`. This will start the process of running your GitHub Actions locally. - -Please note that Act uses the `.github/workflows/` directory to find the workflow files, so ensure your workflow files are located there. - -You can run a specific workflow by using the `-j` flag. For example, if you want to run the `build` job, you can run `act -j build`. diff --git a/documentation/src/app/index.md b/documentation/src/app/index.md deleted file mode 100644 index 69076f2af..000000000 --- a/documentation/src/app/index.md +++ /dev/null @@ -1,28 +0,0 @@ -# Application - -## Contract Interface -Excalibur delivers a custom contract interface. -This lets us work with state changes in a much more human digestible way. - -## Agents -Agents are created as a client with an address. -Each transaction can have a view that goes into more detail of whats going on in the transaction. -Agents are the glue for the relationship between a simultion and strategy or offline and online. - -When we run a sim, we are looking at the heuristics defined by the strategy, its what is important to us, since we plan on executing it. -These, at the momeent, are more specific to the portfolio management app. - -## RPC Management -We should make it easy to manage rpcs. -For example, anvil starts in the background of the app. But it creates an endpoint with a random port. -We should be able to add an rpc, i.e. the background anvil, and use it for a provider connection. - -## Signer Management -In dev mode we load a local private key from an environment variable, which serves as a local signer. -We should be able to add a signer, i.e. a hardware wallet, and make it an automatic choice when executing transactions (from address?). - -## Address Book -- List of addresses, categorized and classified. -- Selecting an address will copy it -- Form to add addresses - diff --git a/documentation/src/app/ledger.md b/documentation/src/app/ledger.md deleted file mode 100644 index 1b81aff57..000000000 --- a/documentation/src/app/ledger.md +++ /dev/null @@ -1,69 +0,0 @@ -# Ledger - -The ledger hardware communicates via the application protocol data unit [(APDU)](https://en.wikipedia.org/wiki/Smart_card_application_protocol_data_unit). This unit is responsible for the communication between the ledger hardware and the host computer. The APDU is a binary format and is used to send commands to the ledger hardware and to receive responses from the ledger hardware. The protocol consists of a command response. - -## Command -An APDU command consists of the following fields: - -| Field | Description | -| --- | --- | -| CLA | Class of the instruction, indicates the type of the command interindustry or proprietary | -| INS | Instruction code, this is defined by each ledger application, think of it as the application instruction set | -| P1 & P2| Instruction parameters if the instruction has arguments | -| Lc | Number of bytes present in the data field of the command. | -| Data | Data field of the command. | -| Le | Maximum number of bytes expected in the data field of the response to the command. | - - -## Response -The response to an APDU command consists of the following fields: - -| Field | Description | -| --- | --- | -| Data | Data field of the response. | -| SW1 & SW2 | Status word of the response. | - -A complete list of the status words can be found [here](https://www.eftlab.com/knowledge-base/complete-list-of-apdu-responses). - -## Ledger Ethereum -The embedded Ethereum app on the ledger hardware is responsible for signing Ethereum transactions. This is the application we want to communicate with. The application has a set of instructions that it understands. The source code for the application is [here](https://github.com/LedgerHQ/app-ethereum). When a user updates their ethereum application they do it with the next version release of this repository. - -## Ledger Rust SDK Ecosystem -There are a few abstractions around this protocol different people have worked on. The most notable ones are: - -- [Official Ledger SDK](https://github.com/LedgerHQ/ledger-device-rust-sdk): I tried working with this one first. It was not bad and I still look at it for reference. There is also this other library [Ledger Tauri](https://github.com/LYC386/ledger-tauri). That is a good reference I still look at. -- [ether-rs ledger signer](https://github.com/gakonst/ethers-rs/tree/master/ethers-signers): I tried working with this one second because I was excited about having some generic abstraction over signers. Turns out this one is kind of broken. However, I did learn that it was built by James on top of this well-maintained library summa coins -- [summa-coins](https://github.com/summa-tx/coins): This is the library I ended up building my solution on top of. It is also what will be used when rewriting the ledger-signer in alloy (or at least that's what James told me) so it felt like the best option. I was impressed with this library and how well it was built. It also has support for both bip32 and bip39. - -## Ledger Client - -LedgerClient is the SDK in our repository built on top of the summa-coins library. It provides a minimal SDK around the Ledger Ethereum application. It currently supports a subset of all the ethereum ledger instructions but we can add more support later. - -### Utilization - -When communicating with the ledger device we need to acquire a lock on the `HIDTransport`. This means that if there is another application talking to the ledger, this will not work. After obtaining the lock on the ledger we can interact with the ethereum application if it is open. If it is not open we will only be able to send instructions that return meta-data about the application. For example, we can check the version of the application. - -```rust ignore -use clients::ledger::LedgerClient; - -let ledger = LedgerClient::new_connection(clients::ledger::types::DerivationType::LedgerLive(0)).await; -``` - -When creating a new ledger connection you must specify the account derivation path indicated by bitcoin improvement proposal 32 [bip32](https://www.youtube.com/watch?v=2HrMlVr1QX8). This allows for a hierarchical deterministic wallet. The derivation path is a string that looks like this `m/44'/60'/0'/0/0`. The first part of the path is the purpose. The second part is the coin type. The third part is the account. The fourth part is the change. The fifth part is the address index. The `LedgerClient` will use this path to derive the public key for the address index. - -In most cases we will want to use the `LedgerLive` derivation type. This is the derivation path used by the ledger live application. The `LedgerLive` derivation type takes an index as an argument. This is the index of the account in the ledger live application. The `LedgerLive` derivation type will derive the derivation path for the account at the index. - -When we have a ledger connection we can use it to sign transactions by giving it an ethers transaction request - -```rust ignore -use ethers::prelude::TransactionRequest; -use clients::ledger::LedgerClient; - -let ledger = LedgerClient::new_connection(clients::ledger::types::DerivationType::LedgerLive(0)).await; - -let tx = TransactionRequest::default(); - -// This currently correctly prompts the user to review this transaction -let sig = ledger.sign_tx(&tx).await.unwrap(); -// once a user approves the transaction this will resolve and return the ethers signature type -``` \ No newline at end of file diff --git a/documentation/src/assets/HMVC.png b/documentation/src/assets/HMVC.png deleted file mode 100644 index 008748ffe5fe40c62ff70b5f1278b1045bd4b711..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590451 zcmZ^Kby(Ej_BEZ-B@H4X4NAk1qS7c`1Bf(8*APPqh|(zy(v5TstsqFp&>;c?2!k*~ z4e^fNuipDU_jmtbo)5!to_+S&XRo!_-t$IV^9czN0}%!W28qhkN6#@Z2m~=O@I49e z(C;`9HRxbq+>*6dQqopYQex9~cd@Z|vc|x8`Xdsk#)7%}`MuEB)s+Yq z^Sy3|v|~c@&Aj66uj+5QGVYnj4`5@w36+S+9T)T>^ z{2_#j9oi8OsasSdrl@^umbe5WNZfcacpOZt?_y&tSPwoV@}<`fo5in7iV~#8%o`1! z;}Z9I!1_%$$~iCY_KWwj5BKr2-*wp+li0hr(kmGX)3ui25FGbQF74ddN?tc_Zau}f zGVCc%|Tk*VgJ#kTjBQ7gNV(&>J-Yt_*EwdGM1H@OKl0o5J0Vuc^+Y0Qkp2zs6LFR`}~ z2~VwFo}0)saggJpcoB7>o+{e!Cc8w$U0gfoiq+Y<6yKa~+kSq1e>bf0sO9K#-L!TX zi-I>u`$>EnwX6hPCmWl#uur84TXdY>ZUFf~9gFbNh0_ESqW>?8$R@}^TUL@%$h7Wo<$ z;UEUqTHZ^%CwGVZA06H%ChEy0CzM|qmjL_KU{K3n?~zwXNCkWPxr78f67wZ;6Cl8r zJT&HE{Yo%0o1Wtw|=b(6#Tvg;w=U^p-Rj>V&hi##sj_}lWg*zqWw z-LRMNPkZ~;C&@-GI;L5l=(1v_aeIzI-cI-O;BEXjvHBV&{#oRsmf~)R$j-nD%sCL7UV>W_0 zWj%ie`KYrE@586T<1Z0Xz2JVvj{1+PTaq(UNQuB_h)v?+FDnzl03#W*J6{LC+Sabo zDRi$z`NneG9@QKbz!>ZljD|up?aqC$C!A5EBRAL>@C|Hi?8q*U`~l3lZBo{oVt5t_ zRgjb}rUbM%|ww|*8ZaVb~-kr1gq^DUPmx10Zu*}Wq-&^AqtyZLTD?F zI_|?B8Eveg?gzC*mDr3uw6)kj@K6fa5?Gp{57+Lr+^P<1cSU-J(B+YJVCPccu(Rui z$HF-7MRC4}li*PA$0vN$n{fLsy^8V!a*8|3Hg}E_9uzVeMLIoph!1>9}m3wkK;ljq}jnXc{<~Y4Y$ogs}(9H%XFUZ>E-X5&WM)#>y4Gk>Ry!=7ul42 z)@Q7_r)N^oWVRo^;M^##%QF+b`$QvuOD9d+v9zR=td!NxGlL^WX=7?@oW~y7z}t|v z`_fCzEA`?LQV~gn#NJJt_7@#w&}VQWss8K~qZ)HBCX?YR!*k?WMnXnw##>PzhaBjS z**o?|_P7o|8>1VW?6N08>I1MXPqFMLxmv5LavJc-dk!X!9u4&k!wo);&5ox#b~`Pw zyD;^svT4cksj{~_#yjqw9-e8t2T({p%07KUXjZ7FR=ICC!i@d|=+cstnk_x( z1<|^=btQl0bhUXwa&b!HiY*;x7gmPHcuSKJK?-F#5X}IcJ40{YHdRzJ$5m}ohD@F02!W0>mB9gC;vhw>ZgxzmD-mZEl ztD`hUu2Z&SGvz%sW;1K^(?;3G|LZ}f&e!)_J6pUXCSOr}>U^J#zc!RMwpgh&y)?El zu5OZXJYN}F;F)j;(F@aSZp;xKXd7>vy~rV%`3$v*)@U3NH7Veq5?l0!>|0AukIo28 zRZkuy0vzBrf(_;_tHPl|y;k9NkC0KBqzE++>F%d^4@r=uN&D01^cA0>PA@N@&^eC+@EqqTLN zcOCFT`dsaj?7Yj?|D$c47LEmG4`vbOeu#0%&yYPVR-E^^);KeGNZfY3F#=f%MFK)% zBNq20tNwL22Z_M^gZz3$lfLQR7k#s@0YuHjY2o5=$^#LxX2K`HaO?2<1?-fM-0v7X zT8aA@n?dO%k#U=u#*F?-#76h)*Yx^2#GFc> z9MJU6LDn}(>zQO(mGqY;EQ#XmHNxhM*MrR}&V^l1S!vIxb!h|AGlY=cA|v(%_RdrL z#ex~vl|rS5&GcutR^Fw)FMhZ^5+Lzb)bZHqrT4;*RLL!m=xxstlALxc7Hi;1$Liax z=%KeOqgq+3rcSyt&1XLad%C7m$5rogiqrY>&$W=7-#4A>v_lj$zU@poQWH#;OwmgY zH2P{1unv9JRekPdp>mOUQuInqoR33*iod;X$>%)QedMV3Xn^-~b*cFmL!-8%{c@Fx zQG*s;CsPe0ezWD)djT37#%~*kXM>E=S`R=);LRMKzH((fIP@55KEKwS|LViU=Z`VD zVua$$3rroYoeSk{FNodLdQwYFsG4%FV$MxQ#KN4d7dv0kIm4GI>OVAoh7{YBtdABo z+Eq0)*+S3E(tPlLysGplUF>+`qcsn#HE26M@0<=4KZ)FTk?fYy_8C92m|?%jp9B>K zfdb8yY?N%R+^wGI*y*U%8yx5N#YQ%>3Im?|>2AX&t&*)i4dBJnvB2fnWheX}Y<%BH zRpIy1;>>QFWmsMalKO#YeW+lonQfg72pUB#B^>8$X9@@jikNz~8?J6Gc*A_4t7MJs zjZkyyP!rKm2qy{)s%?B=uPHka+CAg_|O z(d~8*IK@HA3be)iXZN83lC=r^W5;t(=0a%Aa`D656Cc)NmM-7K)9-2qKXrDeqHXVu zIkaWB$02Z#ra`g?eo*3{Z^s~ zCvF#fC~&&GeOkndko$2qc9UrgXl+fUsH@GLF zxCHwUB#kls5(DN6eoS97ck_kh*$<;lf=jN-IgX(bl3=N`89-o^BRRjRZ zwda-41%-sQp^A-$1_lrMnE(Sb(jEf`{e+4BVL<<2U|{88{dtE#Fc16BGrs4qKgJS= zf55M~{rP>G z!RAxXED}r{^4m<9V75>>0`}X%^6@=uOH|X;=y&BY{_Ca9q??tR;#R<6C<}ov?7;Eq z4!L}u4=w=^w(R)i3x#}M9~RIxlrDV@my`V6_&Ral4#oem3VP)bF#_KZ(rY$+ET#pF zF>drKF27b;R8#weetw1t{(R~QFSX47W!i6Z zL1x|lL5v1u@JL%r`wrXAs(=;8ZDh{*MJ{sTAuwk(!i=VgJ-9oMn7l&>=7WKJV$qFz z$?A$+ck7kNKw8eAw09}|SvA9Y@B^MA!_ztb54ZkubvDhR+(S}4xrRGyJvkhxT;}7B zmU?JzJx8#-?XPWA%Go|aZ;{ZKRbs!-re4+p)I)gEGszm?9XTv!rmGqD->3Ea1U(JA zZ+^^2Pk!AV!x8m7`{oY9A-8MC=plCI+72gR8+X7&)y}(Fx1Gor)_UyM$mNN1p8XOAIwgD;FeDe*esW%^CglJ<5mg}+3J|H638hjjn~(Y*R9!7w*yA>xytx(!F_B$Fqdha~{&*1;%&SimdJNd9(gDXo` zOp@iGB5qc!Fkbn?-Zh}VL#(_3p>Ge7y}#Ze7L7=W`0MJn0&2YfX&p0`Q5ZwV3Vr3f zTjCS3yq_e=<=IrwmfdAPL7(|B&JS$83=3Q=8e?zn!Q20Hl{lPBOp@~1aJ88Z3p|jG z>%<)rEP@6_^g8;biCkC&;Y1>omEGy4`Gro8{`>Czb068B1zSWsxkJ9pkuk zA$QouYp_-#*_9oEMJ%+@DoDg>rF^YoA}#8Fga+EeL4jK9;nXh+6PkdB_np1YY(O@H zuSOFH*vJLZC)h#ePa)6tT0YeR7gzMhR+uKy%fvhX<1(P*5(`r>y$6Z^hDT8}eZ4yb zJBj~3snMO_ZVV#yJqxDG=HVDu4-rvP5CZBy-26iPzZ`@SGD}!UXmglzLp3n@EE`f(_oHRrPlbFc3)SE^W05EfSGB1Juf2Yvjm$E^NZBuA+MhqKdZMTYCS0_M} zqm6=qHt&mL@zd6lv3L_9tA*Al`$BQ~$ScRcy;VH)m^jKn|nD z45e$^RMjTMX_N2XGwX?_q^q^)Q!r$}qE!ze{Krp}I7gY{E}e>I%D@88xJlc0?12#y zh39n0w{N8zs}fyh+9_btAsU%t5N$BNT)M9C)pAz)`}cmClOtS3)?k5Vw~fyO!#}u8 z`641CYr0NX{K;AhInkl_dwaiM3aQxQ*|X`&DCE~F(VMg7H&nD>!=1$8Gpr3|pXlqA zU*XYZ_-#(eG?qhN;O_YNxHNU?;dE43S6;+tN96ps>ZmKH$9aOd2sU_M`J9>=kI%RM zH;qqXncjP;NW<*EU#LCsZGWrOYIWdJbKdhRB6aZ9 zNCE*OtlL#iH&hB8>L5%(I|Z`+=x0wBBXNlh*$mlLqxS#V06Aw~_iH4P`dKB5%)3WL z6DK8m^@Gk1t{soaxMDvQTG9P$rvSm)psR}+{WmCh*A2x8%&&C2=043Ic%ln2Mk#(# zW1Qg)%VDKXDK5RD$}j*wRbdM&`OFm3gHD&0uGONV%52-Xd~=Z)qSWEh=NAO$SU6DZDY}Z$ZL&8_D7?H(k`x<5ftYL!0D2QNDE;2;uD>DhhI?8 z^?Rw=2-T0^DZ$yj#D$6rc)?Kd%u?318N}SaGk>#Y-gI>e-U9DL9W-UD{|O5DE}}Cm z%6rIGyN~)>#D<4jGhX}6=gB$3$!7^gxsld57Y69Obq#5nz7V+nb*+Wc(lRk;MX%z4q`hJ>x5NA4B ztl}}DOy_K5Xm}R2Cp-|xy80tS?2eg254Z9RYFjf`_G&0fq-TUf)urc_2@+Iyz5JCs zoudRFu{wP*Vtf;hh1XTMd1%gJhyR;s{Q|u4J**yiyg><8r?j2o4tl=U9TpK%&Bhp^& z%$kV4>&q|7OlrPwv5pnE9aM#d30C&1V+*%YPvcD*PFaQTU|wY#2ki}|@VYFu`@l~# z6D0lqUg~9@H8R!l?L3u~hjWZ!G|Qp4%OS#Z(KokEY!xv=R_N{{f@n%Hu?T#zXdCh( zx!MtjFVmVdV3toN7HvI<4adK>87@?tyE>I*a_U(A!uDUZjh3+G7X5nm!slz7-)}{c z8#X!36LWZ5uXMaxmLh)OZ@+cx4ylaS?lc#N_iN{%0+5QY=UnXLrk!^9@N*{kG)h}Y z4j=;V?DSZz^0-Rb8X+^ty=ii>4ZNK2y&Ka|VrFTq3SNMhCT;eux+4mB1N ze8D|f^gOgMiy8~8Sv21i|3$Y(_8yl}loI=55}(91;PT^O)AHrx^8fx-R)N?{miC`S zljnuCs+r)W_Ss#_E$BC%neper{RHj3F%7DWk)bx*_UC1EVUeP!V8@kNwNOXnG|!9J z4$Ymcz2bFF+1g$O~F|YEB;eCzIeT+}9?4@swt8 z{PQ5ZIpq>o4paflj+~;^;%#!T&HP#&K}B8%>@WHvNElP# zU3>m#jn(Jk!prR$>2yYaaU39M5pwI~gN7sVGixWiH){=chHut1e;u>`uVY?uRQf`W zK4t}C%RWWJ?odiizdl8wyN|MCaQ~Hr$zhf9%48J4>M^wbd27#jQBK2ga{~m>A!EEA z?+Ua2?bD|rxlv0=?gNL1hsQcBi9D?9X4Hv?M`PtA1K!*2hwMy2W zEDscIz!iPDOoIjd6U>Eo4u?lKmL!eG@R*k+k&WB1GXwF& z$lu9`XqDaBG%>Az9|6~yzn<@6X$<%$vHRLi2Sx6S zg-;G3+6-!}q~P51l~axtv$+*sd$=5vPj{{rQ1Aa72qw;Rf@v(O4mLdLN!CGav)Szz znOYS6@mQ&a1Puykz!GEgAi^=l>BxIs3ZzBITZ!L9wLMMz58@wkO)>5hoOGqb=rCCt z%BpM?Zh5OyX4p?WFs5hN;6jo&NI9R_WE>3;NG#j(E`@xEA15aRi%&T0U-1v-qT z;dMGI=vN6L27h>z(1R;Xug-7Yd0BI^zj&&x&M@q6s5v%!NrxahIXLu^4C3DM_5K_G z1pNfQ&O8oa?wJMPrNS-mLS(--$%|SVK?pxO8su$p(3jwyw5@U;j|C?2id=ez;IoM^ z?uZD(f?m9TZh$0Dyd>&=mz)-lBh z|Baq;lQ}jVdZ}3jHt0IL0a69wW*24E4ZwOPC3!YBUN-1?`Mn!*Vl9L^T-VORCoXLO zu2Qs_D!ro%f>jXIz(GE-r>68kB@n+cKz>_FL`1~%u;X}Cdg)ufHf?XTw3L)o@#7h; zLCd6}2Ib9G`C%?yu|2%igP(ARD{n`6Qt3{b#m@r+W72^a2&Rgn! zxp~gkOgc4IUI1fWj!g`?>{)kpo9XJCG#@!Wm|Ar1v7X!>j?<9Rn%RR*eAx1gY`RHmTCVi> zlk#=K-kaSF3N-Ety4ppTp%B$=Pz+F+H%vqS9&hf*RZ?|k%KmD@KC=T;2$Lc7u zr>$sy(I!gdUWb~w-pT>*PL~OTX>;B;kC@Bywh!5~ca}k)AVKv*XTi=E(X{dFvoVa~ zvOuN7OCQg27yzVYScLkv0HYpR_Bd$WKA1#RE)Q^!N_H7z3f-tF;BqldMsWJs&wZ|S zZWCW+Z347t>;%n#SMg3GD_Lhz10K}r^@1>CsiBJcdD#9zs*W+GWn3vU45#L$ zkLTo`Vf1EBr<_Tf1tl=bB*>0cO*L`GtXzAldKAsl;R=>s#yvZi%iGsFDTy)clzZVH zSRX1}nHHQo5n-;|sR_*sI-JBsAuoyb4(N8#XK#GXELt7-%KpJN|7>PYMCr8Dm}A3O zo91bA@3xm&kQ(ax?ydwn^yhQQ!Tjw;ANHCR0~I+mhFv7+Cj) z$$J)rGxTjOUivSJW8$di(e}qr`Be3@b9OWgqEqc2E>V>nt}XgluQm*(u`|s;@oj2k za?wE)fGnOJ_HW*RxusFL;2`?cKMG5TFJ|Cp31n!0)Tg`Et49n)i;2i|Q<5A7j(~2)N!+ zO#wHL{^Ta9IJCQoy(bWN{|1Edbf2NiVB3qxwALN=uu-Rmc*tLO`$CKP=o!THYM;6; zX~%8D7ahU9R=&TiEBbBCi>s8f#!EL-1i=Z}h^SkvmWlYTu z<`1#xLQB#oS62a21A@3dw}#rBa$QhQ0)|Nhce6&76iQ#s zs;Td)oPM41j8}t`rk>)n`mTj2Lo&j%U44D$BI=$#yi%BD5uVHnZ}>wzF|bBxYS}p} zogWLnrOYMz5~!Ff&I{6r_+f=EyF`r8xO^`xkr^up6PovW!B_2C$>{N4{VR$>n`0N( zA*%7<(5L_IaGRrgjI;Taq?6NmvF6YzE-(UgXt{i2!cprOmdVUO-;vj$Zx5Dc2sF<# zr%Thleqt1o0Vw-<6v;nEEZ8v~5iwWw$)H3caw?w0p&J~1kSm=GpVIlBjZX1}0JghV zS3G;eFOO2=1K*2r*MKJ*hpBzp>bGHq8t2ME>g)UP^?jZV_(0*#wpp%PdDgW+jzf>Q z%1$Usl)8t=x&2-XpfsRU^KyrCS`wy!tj~Ex$yHSU zu|+dd3tgXXSHDsDw}L;Ojdjh27bwP$tExh-gb}WXW6X}0<9Kzyc&yFx5n(PUbz{MnZvVX!r^R??K@tLNCe9+?5LB)idLiqWX+>SR%C?~IY@xOT;$lJ2#L4)9GjHi>Rm{|dhY zWLV;K@J@5{3i#%Vtb|*{{?EO_#A!1?bJfabrxe%nlOwuRHoPvp;lDw%Y(e}BMWMM1 ze+ab+4$*Kbf4in_TP45k@TP2~If?nwR}cG+3tPvzTD}nC*;-cm4hw7DFq_4o^NNp# z8>clQQ^l!J;%VRWB;%C?b~tJy_F33>+7wi3i-^X;DVfGliQegX)Ipz|y2he8m9A=iBF^H6MQ-QMSWxo~(&u4q$HPGTsX z$jZg?P=gW4w!kJz2baMVmMEmm;27??I}5lw*2lisq0x7IeC*9{1@=4OeDyL2t=Q=! zQpcYr^u`7@f-vaG7AcxFVz$7v&0Swmk2SNUkd7Lo^%eC~t7i@n*#zCE{;W&C2z;UE z$~A9w%ZvB1=iDxU7eR((HgYwAVmKN)C1|bB$c54koO^vduPr>A89G%6Dx$~xBs$pL z3Z=VZ{Ao>s>zAfusS^H|MvW(7p*Q~B`olPYC*GQ=hoy?=)8oAJUor(gC)EXwig0>6 zi$yXbV^Zneb63`Xb+gc^M*ag982~XJS2}U_=)*bec!&z=S3Kdg;NBtYZ&p5L27bTw zvV0Xd1E&H7n#EN2Wtdp4CLut2(E-&B`FPXT-)(i6rV1Or~Jo|QZ`R|-NY_?pva3@;H(`)MUZ&G?I7CR-g%)63O7i@+W>FF zdSK1S94ok)$wqm=<=M||hc2DGccJ(>MGY$8MOu-DJcB8Jpmxsj1wqN+-0)9f_?r!5+^xl&%zt%Wc^BeokmcZxbb>(wp^JhC zqh{}HRa!(=+H5MifI<(P&7nbxLcW_Sir82?gZui~QQ@Bsn0y7!wBfe}3@Q_xO{(^; zOz(0=xViR5nn!|eb8{*C%}qJx58p$!z#J5n=%GniyABz_(4J3n(?$=mK+LxjVhey! ztHS2hjy$BR8e}RiBXcP%Di4Qto_Akoc};+izJFOwsz0t-w!XyLv`S^p)jcR(d(ED5 z97BKLT^jf845iObRg_mMXRil3%UkBX~hx><}DM z9fKr4G;yPu1vmppCD4UISK6mdYZM~qY~47c__V{~y!@7!XSmv7DCZ3!gfff{0ldDQ zf^wJcwrsOs?F_6|0Mki-H_#{m8O4+SRT9zt4?q){q;EeavWFD&lBFU%#O`)KOky=a&p>d z54fUZZi)F1(WHJ3-vNfN zKvuOpY8m*!k{Y0*!1`OOrG7uWw5@8)c>N_riz4;3pneVMD~qJ=>DTJk7tTe*ketRG zQeb{ws9-6Rme*iS#v?$I;prL5bjp9nlQ~EQ;@P1vAO~~y$mS)m>l!+5=hITLDl5i4J9&{^_`=8!8aBMZM-xaR68?KK%3qu={L#WXzv>-Tu_`M0@=Z2XP)a>A+0WpSM2)j{&yzP!)V8Xd$LvN=l>*>7lC4!v*Lr7MYjtPbww6 zknfI&96XNGkbkZB2Oslru^gB{364!f7`3myC^7nm`IY`W&s;cZT05yl#*c+re);Is zuH)CGoy%LJzZU8x$FgW~0K&o*SgLB!B<+!L1PBF4wg4Q=LMZnNPDHKR1Dpur-9(db zG#0vXk+pS-*1ihS?w9S=pIq(-X6$Lt3g6h*P;a|wmZNTxh89D)6RS)1Zys*HOL4Wc zvvbZs0FB#8jj-rCHjvDF9xEUFE)^q1t`htAkln^(&akLCl~{v;d*hl{`yG7TF$Z;- zf%e8HN_5!+j2XQ?ZHLOZ)!8Bad{n``5C%;spaI|noA>{P9`x=woE(GJGbW5TA}ANq6n2rRqxOlkzSe0;j!u3&zK6-A-nf1 zho2ZY?$=p(tihFB($=ouJXm{bqj z!mTi$kutYqv^Zv$!zqb;6O7Amh{!CrT0T4D0vR7V*1r40EE-hg&2r@QOH_A{mUuP3 zn7C$>k&%I+!ut`w$%~b7$xDa3{`=TuG8SfiJ{z8cjoJ>6oMwE6O_1Z;E~dj2shXeV zsG9&U7A*tm&g}X-HJxSo!p2G@&N~V zV>94?+y}W`t-lHYTUjGV(gyQY z=^IQ#3SILO^Ct1u7C&4Dvq~Ak*_tKs;lTPK%Px!NZVq^-anU}n7g;q3mLECld~}ZD zY~KVbiy($MK=Jm_n@=lEwXNz^_@Ols`%|L6@6m&Lu>lS@LMEm_QZ^ z*4|H`S4==9cS%}E`oWMR+U`Tol{&Nm}Re&v!m)^Xy}6#`mbH@ z_kN*V5CS$)a1`(cXkhOfJ=}MsHSv_r+n2X_IdA>Wi8u&rM)1U7`}#6vwvmqX#**J` z_KJStezxmm6ON$MQj1#!NWiabsi{I{Y_eh{p3%#E-W!$qb|F{0Mqw%Yb_d(A0l^lT zk}J{2Am>5vo8s2vF}be7$g*o^^h&EpW+K_S3U?DWy-CCaPD9F$JUCp?GY~%O_exdj z4Y=#*x)ThrpI>o2{W0&s!_EAkvn8dt!iMnGq{&iz;kl2pk(zexNQ_sgbn@GVA-&zR zS8jB6}6&vV2#H_1)Q8PKy{PiDa!5(1lmABE?2vq3Xxs8%7FNDNg zEE&3FIU^7km8~@sGQF|TnpNmt$UrW)>pJHCO#|@8q-MPPb?rvG-6B}LjBn5E_?cDd zu{M3RpICi%{6H9etefnk)eqIPfD=F5wE!(J6)hj)4kY8GdEGP~^J!@gzU-#< z2-hw=NG4qq`XxeLg=pp60-s^UYf(3{oPbu+=}Ot8`IQ;tQht{nv4iV-QeMMva%Pku zdr$K*(6GR9YpW!P!Y$<2EYF|5h*>ulHR7ZBbM+bV9HUx{h-hF^$bRJ=At5Y8hmcTO zMl=ZP8GwKKglc9>LHJ+tFGff;?YN+|pwr{9q)u`#>SI%|<>D@=l<&kf zpMHvYsK1rbV}NQ)+-2nwWCZyn9B9C$1L&M7#JVTCGOP80{ZX5MufpjP1c~MC+ruzO z1H01VnTqplxsUB}afLc%okk((bk|D;^o*gOA`E;>jw#?;wuK{(BXZ1prfMIT``xk&P=U?cVv9pveYmMXw#qN zPCx8TL8gS`UR?#;XaAD8yq)C{i*)!dQx*{CrKzs?$1pT>D&jae>+}F`^Kk-%!+q<@ zx_NX9=3F%)r^jWy$ALuv7? zP_~^onU#30upoQgU#C_*32xchLbq=AUYdr|!s~$)ruT@y9?ErrVuuw}Jq*c0s-V%j zIwSp(!3sUZi_f!z`~O5F8Ue!z3^BrhwBbxN{X+Eaw=>CM(wH}CU7Zz7G>Y9g1t62! z99jb7H5P?GjG@h399jAiVcc~s^q>kdG!UWQS~Yf1SFTfW?E@Rn2Z*-M>D(Xe zi7+VDyy(o7s0=+)U*-)-13%p2so9IC;Q;0OC&IG~P^lZVHB+PRrlIM9xo_v`maO{( zh5wEGY~$1+>1=o)OS@>H_nz(DuFZ7uN9^%>-5`_kzIZeCfrpQ^35YWPGzLRn(Tv-+ z;ZF~y7W+=wQV2vIyPvYajSxI(pW3J`CgIzW)Shv z_!Uwkd&52QSVqUb6ZG>For``ApTLd>cPK|{7EsJQ`TT9_4}#Uh4z%p&BolDv3MG-I z0-84cEglIFp~1MqrCCWAU!6R_HQ&&pwobRZJqXlR7>FKQOF=WkKrhL%cZ7y$xO$)t zQ&64|EQloIgcSQeJgxXQPx9;v?u?f!9rMw|o!N$D@0#s_O8Nui?XE76nY!CAhRQos z6mEmP#{j2H8h)lV_vF4AyDmFsnof~ww?RuPD{#pms$>gJ>4e4i2w{N3jSCYkBB1Z) z+1Z&^1%AQ+_tk8R4sXpVtle!O^6oQ97hR)kiR#M6Kr!9^MZIR*`w*q0rG`+B&TolA zd@)$>I}1+3YR&Q&BO)SzmCSI`26D7kMyx;Ha6eeV*@CveJI;%-c60oI z+V$q%Z1!e}E&(59ErAHc5XCZ-C4b(2%D5d1p>o#L=~@_&>imYooFmMhdD z@Ac4`-Pi{m{#=X=A$EMewVd(=8Q3lPRB4q%;9yAAvq{^aNCHAK@zXS|`!yVVgR0Q^ zE`6v%#v*g($9|VI1l=0`QZQ+x1o~0vzw9*_F&DtFT-G&4CcX93sfbbk!nU>0;Hug{ zs=2f|{ua{Z3p0Brhj^K3SI{RK1HQNF-K77Kg3$ZJz=QBbi_b~lQBo0E8_HkiM$3Ud zKswcw=jdp^&CI-9)OYVPlCoh9YVo(uf@xri-r0BKZ)J$j`IgbdI=ORv@TnRZKLP~& zI1_~;RH1YsY!3aGz-TGBu5n4OSIJ;KG)c;9!X+gcDF|ah#j3qV`dk^Nc@~xte|6** zUXurJ%T+@gksk`^uK7U*s1sPwdDG~LSLDN3nE%a2@+h~38eX*mMSe*&38tlzaf@ae zclUQ&GpZ!gKba9dK*Wc2amhs2FZ7;MD^?+I@mEW`iC59@IeOqIlqFz)GVEi4Pc4gX zGU8s2Z4`l4xa1#H9dF0ljg{7buFAQiCj$U&K8~5y-!E?ckog)i8Kl{2f?c|Y@Pvjh zXK5m@pGO~=Rm15Pbqe8og&$kkG;op47r0PFo4}&!RARNjVZz08M6ckWwyq!_5YO{O?eKO6aghL6&zlgWmnDrEYv>W*aNLds1vaeGSRk6{cfq&anHT^Qz5Yl#beQS=cNHqhLrslauJ=?iQkWzU&;G3CWj6Vm=>n!<01!jsBQl#tbRjK%}U~J zRFEXfSG2a%`uu3K{-V<8`?jDjoniC=~VAc#pCw>Qnsi%q6GD+MBHpNjVC z&`I<rqcjr^{v0K`!{|(MK7tT$$y`-E@Cso7jk78=#6IC9d?{ti^%IPTH&o zD{*Quak5VCd3R%4Xz49k-_^iV0A*vn&LXmNL&P&&>HI+VD$D=9%8(ZP2Aq_9?`0RR z(Ne+bYpoq5C2=UR%7!x!Y&DZa^;8{F>GNd~315D9#aN6}Gs}BmC`h*T|2ax-H~anj zd4ULvwF+Dz-5>Q^!Bo$#SSSY(Y&DU)PoAM3{X%5yYIF%2!lSW6;`g97=C6{25h6>a zZ8dEfI3HABj@;ueKM@m623ADmnNQciU7&88QC5*iKaUTxj=*AQT=@iyCc|Z>BFEJ4 z){H@$ok9p?Rc|B1@r?lZd%}}zRTAqiidkRoRa+JS2;q`q^ez3Un(IfZ=YtCqBZz>t zAJ7Lasu!5bmTYtupuR1(ap^k-l^wO|F0xc?4mXbMK-aj(mPNnlbuH?R6w`Uf z_M{i+LU(3(`y6n^FRPFItouwyu zdEAcWdIL#*w%1m2qkDec1a9B>h!i-&!tL2a$hv2y+9ISX(~z$`5~@FaNP+AB8t(af z0mrE^Q3*9UF3AW<55<}SK^@{3gFiVeatYp=p})JJ2n8|_Z4tsqW|}(SzrvZ8)Om4aije<8~bY!ZP|bTrlKI$c6jlDPBAN zkBgG>4*`{y6F}(>RPUDi54Dn7)w1f<$&(jzo$<~bN9P>}HChg@FmKIz^nFMk*l4^~ z=Rf8>B5x4MJb;|8U>{w5lzB*^@e3riiX_e3CwaP^a<3on=lFp*wx=Q99vlOa%#M9x zOw!&zlow9>Yp-G#t8W!giQank;_p}}dYcir4*NEojwU)b*G;0t7PVfCq01-2?Bglu zvfOjiI$!%9y5q5g|L!bJ(sfox)~>2}J&x@6S@wde0CHRO;p{h?@mY8OZ3%(rYk7Wo%LjL& zLV&m1zVSSZ5(-hAd)&l6Zjb5za3(Co40K-yF;o!wl@s8!r1>bFtC#5yh~Ab7LH8g# zO>!yf-zlur7}5l4UPFSaOdswQnR|nupI>=BJZ1{-@B~B5kw3QZ;0i6b-tLydKe3uO z^aO5(9jGkkK0jS}!XQ(DE7$PydEOi}<)>ETU5^LKf0#d7w|I@!DArik&3$kB!=eC+ z!p%aug22-ht&GQ-V-b;4*NUq}W{qTD7v=*O62=O*%i^}b?tE}f@ zm;yD&#GVKLv^rkB6SbU>X;5uyk11m&y#uV5y7HgJa(K$Lmr!7x#BvcN|Gq2Fnv2cq zKlqaIT?@=xAS3Z)BpV*;XYEx~%j`p?x1;J!1ch{LzU&bCCk;=#?{pyUm7S`AOzbFx z=l}BOK=#^SZHDb!aHp5bO;cy7c38?>v&$;s6(wq$;j7J;^$XK$cfit_oP+5~`%Bxn zSK5KGBV%K7Z}E;j>9hek9R_HnYx&umG8Yp=L*KHaK(!aDl;MPz9&?}5omuC9jc8k) z_p8X%&y0ASh!^`Ga}#Fld1LiSJWm0^`TC`V zSm;8X8GK zKsu$nyCtQ&LAtx^J-DmxKEK`9{Rig5FmulL&g;%&{VHERv++H_#3?c!dBFnMTzD)<^w-%7G3iAcyms^+d>GQh0 z+wqPoQduXSaGZ`2noyH>dYLpxFHg2Njy9XFpD1CoYmT0>SqIgd=uNZ#IcfqZdV>bi z>cM8J!Am++5A#aLtO%gbdT41qzsaGNX2|7eQ8s7>ha35aE2Z}Z4YzVfzRzBP7Kv4* zG8=eNf(d98`kSekadqav@jV0>*%*# zd8qXcLe8u^NAZ+yq&H}1Mvyj`Gh0nbU8Y((Tr!5khT!(!TZrB|J6(m|0gkQTy5BAjfRf3Wh~kjd1BFq zeF5%k*X;A5!G@J4Ko`hhXRm{Zc@(e9Z2)QgLP2aW^duc?MFJnyEM`0VieleXN$SYK zGV=O~S_&%NNag?ZTKVSf&z>#7RJD^y_R)pW$!lk_EUG7Z zCt64659;-W0oRB`z>`s*&}&9=GS$@7%&#h}7n$@x%bpktlYR!&xxEyxVJaU7OX${aDpxS?4)EzoW@li z-6)3$-JLXC>FP+k?Ddj7s%`^$j3PcVbv{vgC4hA|m@&{P`F<5rTOi$|#}eCZK_z zjZ`87Snr7aP=r;7pEx)#~w2|jnz#u zF{BbX4J#|F$ex0SW;p&66A#8(DSrfNzp%{TUzNPjFfqwX9UW?K_q{r;U5%5g_1P*g zE}NYM2CU?6n`0>z_jAEx^q3CP)#9cmLZ&H4Wr?D>aqH&u4yO1&qxFBf$=koJ#=0R; zz{BCn;2CZ_bW5^~)Ya(uT7U^>naL&HUqJg7_enC-sC)5GYyTH-{BvdoiDZsUgHN0` zvTFpeZ$+%UwP|VT>0(EL)VD*g4r=;jPZVizkiaUEDBgYwUt92gb7X zfK5F~Y&jbsEO^?#Ig)>ri^NEHgJ#hwdPYVqz971hPTstu7n5&!n1{+31W1YjzZA8` z-bY8z$yp_~!Bu07dVl@}{V!nf&tJ(0k1L$am#1Am;y&kPQp?CAMY}=v_Go?BHoIb> zj!fAU%tZt0Di0L;-62)0K~2o)YpfUZe=0YbauIi9@E+J zT_)~t;}U_2hchYQlLq8=*^TQ-!B%`yCTNK#57rJ{lh2x zU3>l_qV(*b5pM*Vh$@HaM8Bi1hi3 zD!d?VD8QsBK;*~_luu!c-T)yAiXr?JP5cjGZpo%0iNGAtg2t-jxvrk`ARu3{IIY5F zYvQW7xcI_g@)Ie>?GX4=F#Z(?$Z8)U-;_O1Do_;=QrVepW&91HkWkCqK)5d(VGyrG z9ej+7ojq~|wibXak?)|UIxTKR2tXzjl`#%rZrAaioByaR-w$nufs2n%716b%3Qa|QO$?)X6mSc>kj3CPUkj?1zgm?& z+**9y;?qd>yCYQ~!@Dx)rsz9brQm1C042krCGkA!eu)m@)PE%JUkn`73J{#(-mhPc zBqG6?7q^|VE_GED8#qqQ1zr%~rOxy>L*j(^1X__(wGy(0JD-V!qj29Rsod=F30>^4E}bFZe49KvYG zA}k_eyEaBxw~&69fW2U_yyv$BCg}s_x&KgnU3N7`#Tj_|Pfaiq0Hs&I5aZ()^IdNY zp^5d2Xh6YXb=Ek)^LQ}OG_V5QE{awKDSZGuEb8mX?Ko6qwbeMo;gV3Lx#yKCWkirx z=cs!XbIlr`FhW&b}gv+o5o1ID}5aCAE%E^d0X zqsV-F1lX(5=dcizK>AZtUj%~*>zT3sBGdm&Fei{EEb6+diw_9b=6=JR$9nS@C*l!5 z$}{*T5ajLKw`CWh1^>E`;-|z~h4UB04Wfwj?yFk+MXTYuL!!kecpf0$B<8jufFM;X z=aTn+=S6&ReklGm7Cika%ei3`Fz8$re>8znA(^i6vmxx?=;|Qj2IEasYxdy1YP%V# zk5wfM6s+n3eMX2AZ7M!(FJdw}R#MjDwzkyR8n z8-EAKkPhnsk-xGH1hjeH@a5cdban3czqOrc$O+y0yZvhX+Ka2D)-*PU<4~zO3gnPcA1z0(cQFEXlC5-a;u6qBijnkO?^y^>$djJy8oZ-528c^2zMk$QCgm0C;W5IyYxH$b=k=eg+CX)4HV=*OHnw; zQvLy_#AY}Twy}WyGhF#y$x@gV1->5GzvDMQi5#F+3h{YUFLs~Ht3?!hk(tfsAc+0W zNV&OX102tjn*Na2NBAWXOA`c7>zP?_yY%Sa^!JZ9L~#K3D19xnWMMx#Hm1;DAGoxQ znYiM$U5VrW^7&j7*AqbwnW#6h>+&geJTFg9+1fJGv93hGQcOUH=1dVjLAC=AJ3x1Z0 z+RZPXvIp?%>Lp7?Bnj@GKrq-E@5hMz54Qd9*`VI=`oYG&`Ac`uOD|Dl8(xr{`e@xD zWH+0;m+tYG?){&(`2V^O4655$$W%wC#br)C=P`kL@!QwtCMMh7V{qf+II!M<`e4h; z7l5^QpN?o*X;AwehXDFMg1vHcl6sd`V}-|?%nk${UCMeh9JgnSb-wzVEuUXkU6+gi zRw*!-znoO~)z|f}tk+lJ=b`!N&O<*|Wo*iAYtep-WaTQK5X$?1dvH?p(5x}+`?ik% zd$zwHxwR>{cF-FmFx2Y^Kcn8Cr+#lSdP5bR|17u^sS8Ds#O5O3I&aREhD|E}HfN zU^8C^MQ8UUdB^ze%=6m-iqwRDqp+}0t5RiV$+$db_8O_?_t6hP>Nw0qo^qz`8AYEO zgymd_LaoEm^mVa*hOgM=2KAp6$$tPWKbd4DtO1Z@7UIli zihhl_a9~Va)fE4sP&(d;xSn?ESocmY(|@27&>>zruhiiF@=Z>7D!_fmJY-;Vm)Q(} z&QisTn{Bfw&>-furg6XZkbq>jSURyBVW@{|DIe;fl~E3RQC>V%0mQz{CKZqFfK{GGc2(C9 z0*IA~sd!ph@3)Q^*uH`fD!D0J;Y2H4VfL_&`0(MwhRlL_{s`WM&dTQICa-DS&whcQ z-2NY31)?1V<@^b^Tx~b4+?IthUN$!QtXw9;+g($y`49C9Z_#w_&aQEcR6cn0Vnp%Z zmvQ|xm#d_(U>PKMdMsoO{cQxDG2bT+BOu77cI+#_LTVKGrIS$o2YYrGIUp!#J4=RA zXy8iSjD8%2}!iGbFvT^)H7=sNIdET$0omW zd%!dc>+plQbZ&Di7iEJB?*9R<@h7Uo-&zs%XJ9UaqX&AYzRN0#fEdjw;L|4SD=K~r z^nO1!?rGEk`mImpPwaw!tEYED;ig$m_uW7)K>X&s5YYfUbCk!=oYo;;t%(0MqWO1H z1(3Z;reVU9M&sERs*(2!C2oil?~Bz7o*xTvFydB_e8>di;(Lt0^NWCpT+t*FossA2 zx#UNz`z2kc*aC@0TUdX1&CaKZb6)Rv`Y5V7oHwX{hmZhkb6D8`>~Eq)pvB6K#`$_H z(zU(WQ=#h&MuNg})v(s96@(^ii6Ds01mmv>p?|ef4Rc8P6~0#}YGZG*_bSlH82}l@ zBY-XseVp?`4Jw@{v$6BRLGg+UQ2qAqcL_FtT8JVI6Yl|PvCxhfsLJp+n@ofZPQxL# ze|(;ZQ!z)J?Kw{-b^767mOlOk3#^L3-t1z^@m(Rg+zMwV@y5h^PRyE+=hj9>IY3Iv zxB|(P?7ull)CxBjRP{Zi{WGU`KzvtS-ovftrup!jGtQRkcY}@w1UqxW2Ohur(*8%2 ze~=Hgzzq%ZCR4^{2&vVW-LJB;asVcbT|RCOK_qL!3{!}%(t58E_i;Sp@A9m-M>P~E zb3=H6Wr!yP!kyX%dk31CW!*a8P(~Hc|DrE2&|*+ZN=o$*oIw91kR?rskEgZY_!}0O)(|$v z-_&k>wd8P6^95#tV2iuT4d2g`IpO^m9b`w&DEGQTQ5t(A#%)r|@U^=;JoYY8qTq-S zf;2zL*oHd@VupfS`2P3zGxvlZ@OIRZT}Q-y5EQSi!^`@yAkBw3j-GcRn4(R;Eq2_V zvoyeeX`3dW&$*K~{;HV%^hZC@*PqIps0oWeJ>;kk^h)B3C(pmSc;u19n<>&f zoB@co-2=c$xgkN&J^qXLZ2q2E5Ed3T^7KsBO@r|!G#t&FHl8$g4k33?V|P5-fPyDv zf^9geV;=wB=fT3`-S0zRBR6hGqJtpNpH61gcEhoi`vyT1E^BG&^F$A~B+oie;zOvg zh!V0FB@~b(bvm0QIpm|zr|UKD$Wkt4X#4DY8HDy-2}GE-*i%)ub6cKSSjEdlyubF3 zL1EC{4=U#F6j(a*@@g{UjqJttc3O$;jiZfx*i~-i#g`kIWLk$I?Ls%cTV%1l*m3Ic zbStx|AYWys(SN1O2M6cgYpeDbvNn4k{72;!qR8?_ksqttQ=XqLOw=3LDH>f@Vl&3k zw2jzr54lgR;9%zzY027muMa1+@f^;5=-Y~Dw0~$wdD0u_OBXf}r&9Qql+Af3*%DEH zdDJuyz@6mFx^3ahFT?94rWGAVFc?vJAW)*>^nNe5d5HRfEem zZ54JB-{>gFHP7*9r5TPy@@)Njg@&3smW}x%Un%{L+I*63|7!l8q6GW?@ByRo{3iDJKu7a~0yQ4PD#1>-(G%i|`ncN!}8 z&=uf(vOoSMQzef;`~C?*L%b}tGSPKZp+$0XI_ms|!I65>3Wz*~x`ufrN1VC0JDUKr z7d>nI>qhlemhZ|lUE^R!R*kk?CG2 zn1-sI;TAK+&<0D`F4AKKv4+14g2#baRXlkkcJ{+fI^FS{HsH#~!qAsu?87gi;0V(s z$uZvB{hiAk=a2I{32oK$t1e||6Gm;%J}E7w)JsijR;?um2VE2yoGl-`X%jXscYixA zpPO2@+)Aka+A>Z2Scp^oBBn@pR!28D{@d|dhSMcPx2xQtN;Kv?$~xK8QZ`IZW~#;N zg}vip|FOx0PEdA)POG{Md>!s7@ZxLD5}uw>FQ7N{IT z6#ZQ6Vwlp~N$Ae7H_tsKyxeQm1$Rz}OU(>;hrT2Tqra6{vw7`+F7>*r!(P^c{NZb> zftTWG0s{SMas_8zrw6N0o5$tc1Lgjif5;a4&)PZV%2=DIqeLp_C;K8PSSh%ZZ13HY-bb| z>s_2#oM|#hkH@Mo!9SoFzc2q%_Ql&hbfN6Cat5^1iSEA~X5iW9vl*(6>%8vYV#>&imVI)~imm?t6BT$F?tJ1D)uQ zh-CdvY1Jj)HRE|a*+Gr6kp@q+bd#6aZH)MGlChW6-;&_i%zjh zMAPQfOXtaVP_VP_)vkw5X+T=_sw$&jmvUqL_2%qrMa*aOd;O@=CLSla*XNml}!WQ^y+2ozb^{B|TXET|)A9|4v{d4uz zyBa`MZzY7eT{DKe-!33rI4f*gjk49fxjt|`i(H?b?oScPJ^(sPWwGFwF3WKpK{nqp zEwhkY+4`4&Qty#3_;+*z^&_n0t1Q~C(N_g-s0Ijy3;+YJ0Rta<&0;OO7@`Bi+$+a$ ziP=1Ug(=1mH!Vo;!P!#ftEx(#jY@=eF@g5d?hUR4I*#5E^Xf#ng#BULLT5Yg4MWkYRtsVxHkTjhdyPHm&$eVS#9K{!gcr?C|j*8@k@WeJs(zmN7FnPG)g>&mu1Yi zaC&s(W9g+=&Yk0C^D5*gH4bBe^sCcmb~s&squO&)6K+Vyt zkAs2(Rmi9eCn&lYZ0@?wx#v`n%QB5k2s8LuMyq{leXeurK z9cEb)OZsQVPd}yMJRvL2nBm6mqc2E+eVFkR4AFvy3(r*U{oFlQr8YOO7>{OkC6w%j zL_+@*G&nf;c(|0PA#n*A{~7-QGzM{>IDO(v{I2R&=EUpy$(BFsVh<2vzum79WPqZo zg$8_C9dFhW{kHy*UtIbb7yiAm$B@fCcw5Fc?KY>;tY>o0qE_H%p z4kN}ajUAb$ujj0!*kX%Ez8Vfv6x$or!I>kJc91!Wa6xC%x#DBTk9nu%hnD!>V<#;2 z__5jehhTPNBHbls0060xc+Ye~R|7m9y^7$;Y{19c$^$MtEZr$dS=_i7R?5O-zi#s7 zQet-Lbrl zD;-)@P=o0E@`s6iU4a$BVe@3?M>c6{z{mN6!FGGdg@I>x{Rl!2D`e8#+=SO-AHy{E zL>^U8>%PXLY)a7MkXKv&>!yJpOhbIZ-w*EcMof0r56Ppn76KZi@9&}$Cr!LYZQ8~3 z*bg4`+_8zY7ku7 zWc3}Lbzln!(qT5gmPg6sT{Q-zyDzkYOuF-0s=N})rkjO4BgtH{5omRg)!H3m(I6kv zR=k{O`JB30MzJOXa5?p@b5T$Q zt9;s}ecCK!ckd6w>F~0FW4D1+v(*h6zn@${3p&z#c)U3tCXdl9N#hHR$5lBL{ngL; zLnQy;X~~O3$)`hbxK^DGleRGcjRp^`cc0IFdtE9U5%xz{d!G?39V;mVOrsd?8yHht zEndtvHf_sR%kt_`FX~!yT#1o|qQ1AB@}C*8xaDbl8+q~XHDI)8{%G{>L0UXGko+@n z1eUnVP@YXmCe2RzoXi}QEwKt!)*mEm(1NAgB_ZXVe+47(oQy92i=KYB((^aT;?bYY`6%;Kw*XV! z)8J)5$f&ez;dNes`34rXRP#}2##r!ovHXW0eOgeB9k7EpPyaV*n@1OQsA`gn9kRUL z6b`Dp@BXNk_a%TveB;JK;yyJ{^dyn;`;d7qC9pgtq0W~x?!wy*IjXSu9Gg3e0J~^; zwiG?gcgGunevJMeJblT!390%YByf;P4CU%id7M7>H$?`Dzh8lX^n@~LrBmoe6n^Gd zEn$>c>BK>(W`9zs$bTvKSE&OR3ED#9-2$)oi6E@Bnb~l`Wu&O|!b!0+>RpEK?)`DS zXB*T-oSuU8zEBu%Gv>dHH2%T)zAn)D8v$B*UY@Bg>%>jqJ{n-aug=za`%Rlg4pn#E zX-7PF+|TIZO_}`vxXHsxeyv?-WWzE;SS0lmKVVa*w9wLEkA{2BN>My%5fQ%Z&e+xi zn%-r_OmzGtW1Jevn^(9v4Q9ve5r5O5zv?pQV-3Ek(Wmf_cP<@hdFE+Onrp5TtB5J@ zZ{m5VLC)v1r0(2O45*aFx}y^)HO1}wQDin#GzFO$^7AXe5|pt>wNkfDFa#dgB%+sV zCcx78CUGLb;pSB?N0XWo|42^Z>O;Mtc|75NFF924^Y_|r@Xd`LeAD7Ps>3**s{*$( zK{T6eb*_?uqW&Mot3dgFa*?FLCI7}9>j4~?Xzm7wb$$hlXpV>~7Cm7VNa!~xB|Z#$cjWrU?7 z@6t;S>gu6M9LlAoQjg0FPE?%NPbx*isT#J`6x8tnY8_xqzHw3HrhdtHcN1!}AgU#g_ z{(JGT>Scq2x+FBM=J}f9k!Sf-*TG!#dVG#QnONRFw$pcn(XF!SU;R0XWbwOwhq^(G zFqFfK{SHk{Sj-xiS;M=QK0{Fp?H})yxVe=fBIpoAH?7C(cB-&dqjpE{+h52}-_TXN za_m!&s#pf{t&%bla{aJE>InPeyf8;pcaHvC%l@a3az33iy+3NXlI)u5eitV@Nt%l% z!(AsySAjLvuS-uD(-yoby{&Ks5? z$$rsl`V3W#--D%7&*aldTMs&3zncfFLC2jeAh>%>H{ z3QnvXAB*eVJA;E{-SDomZ+svz3`SMNKe_Kexquw~ph5!+Z`{H@u;pTOO705S8(JCb zy6Sr_{G*5saIKRZvE-W!{&&JaUGBH9h|^MUl)rpK3@E4u2EwM#l>@8#{`$;DE#0Bj z?sJR;HAu~55t?Pbee?455^HR<^mnl?dDZ~d@r%JZIuRDrY+C1{Wf-tq%Wdb`RJh zcpGf+#L(G?4;SmZ;#ZYdk}vaIxN-JvG-1`!T5Y>fVHuQv$X`pD;9tmfJm|qLTxnTnTH|oMe*QV5A^37iVkCcM^Py#u2(Qzn zf{BYJua$bf$z~g;^*5!Ro=2t4w%#|As#=5E1v zmTEls36 zH~W>YT{~wpal>4zdg}XG`{xIA`bQL#p*JVQypFF|AUF}R2hIs+`qyl;$7xMBdOMsj zsTq~KUx{AlB$AlPtjSi%aDX%1l0ohYl7*yX?zQHz3X-mcZtqnw3ngigL@@=|1~4gJ z=A&q(Pxsu^jXM`djgLE&J36+3Hy?-9)YLdJam7T|)Wo_NARB)xkT1%X%^(mAn`K1N zO4wf~y0m5ARlVFX3k@bbu75C(22_;qW9+7CJSdK8NSs>ng9Yy*v!9W?+l5>3zcclz z%zo4+*EXFhFh_a&xOKp;1`$c^VcJ_QOh1zVC<93i9ell;*21G9cQ+CeBqY$UUl@o` zS9HRGM0BnfdHS|V=I5D@#MFlQ!wRY4^ebrz{5kiMfgYGp?j>r4^wH!cRd3Ad6h*}SUdH^?ipm*>O?!2+TMr zsxPQx*@|YOtq-?}wSs$$D#aN=^bvL%Elfn4BO>fuAEl36RPzJZub(ImshFBfE0068>&0;DHD$!q&dy*xR0f))bE}7CW+HoHj5#m5Y39kp+SJzCKe-pJa5!Yt(FEx zVekq1hTI0d3csCer{GoN#)Sbn77d>9(Z|#jM~I0#h>c~o-cstG9p+06;J~oY_%Yg7 zkZ`@lN5UCjwXc-FX^~(Ay;}_5K0}{9zFbI{oLlzCrubHS{H^PuOHvx$rMT;5F6OfX zjZqb=sCT}XTl-&lKL-rJzkeUZ zp6NEy&qT^pyYYGlOmEOG;f#cLnpU;z(u{E5s-3b;XmN|s-x{`^QAMNB-fl6VlDpMz zsnz;C{_28kWTHyX2dC4FR7;ms6c02Aamg;82jLMiSr?HfaeW9IDQ-s#=U$TW&)8i1 zoNGn-L^udPcXoeBApZ4axhFOq-w}n8NNV5n24=|y8GL7rcDFeunLgEEdHyJ$0K(ml zY>a~)9Au^ap@x&aLurY@_gL>|j+x?*-CifpTDJw+$F&J3j@MK(=&QQ_62DYlAZr$H z*rr`K1W|Z|1;0-OO%{5uAE%tKBK--=ye^uLEo<*&=*-f6HLrbDBUZBHQ%4}{{!hvjR<~^;bNs{lo*a+YHXQ?njjuzBs5$HzV+3`SDS>gt?|z^Dz#G)kvbnjN2abu zXSA&9=kBGbmm8v$zX(c2zL%7wJ>FJ=nGkfWF`zrUbJ08#b2*TXq#E%J1L;%!ox{6r zT0FeFEe-EldSKuX?X=s`lf=XET2t7L4s49VHEY;c8BCRw*wYa>b})k$MXf{+6joQl zszdYzJ?no_NYEdq)fso@%-ark(0=uyz#>V7i=G9E)LYXdRFSDcq~@MHdJZp(Ab_`yy<#3v^K>}x9e8;?wZiN3_2y*MR}M^` zd-0WS4H46mrDxd@Q73DM(qj7Tys+~r`SpFuEc*A3ua}=6*!LvA{hZb64@WF^=0f|} z_B_irz^q{@lGkg)#k1?J^S=df8n*Qx1%r(`GX1at4$ z)JK~8X#I~P+uK;kw}c+bi|cd0BO-$P#uH<=Ye|+fg#CvW-dZ1-=W|c7Y-VxqF7PDi zv5IpiRV;IJg1nLC->P6)aP!(K?tZ|S8$8~8 zD;JlwMD>oCZ!Z+$eb;LMr61FlHyG7^Q2L$h4{iUh^d#6AiT0<|fRycag}&IsaOGS| zxm>n~owI2F=GlUP3VXBYQ~FUWQ+r5)7Cg9Q>Y|Wwa|Aq#l)`3vGI!q2F9ei+yL)L*|CZA^$MS>5LsZ=QV2D9OrqjtY?Xv<#doL0et&Bo-&9v7#YUFs_8n_NETUz4GMO@N8edGaRQ1V>J z>w_0Q!30SQTkrLW7|EV1#Yt;%mg8Exj#qZa4xX7TNjaaGIySFA+O0#nUMH7PrbJ5* zCVF^59@*fm!Pz2S_sKE3a`8eX&d~x>s0bdqfCyWo5=6wYX_LBW?g6!uxxHVgdq6`F zA=h$6L z=d^c&DDS+UEYnMmI66i`SGla*;>=e|DjKOC44=v7QZc}yk{VJQH$Q5dbu~B%v}ra&PAr_34ZL&$o+O=1*i8Qri9*QqNd-@_?yVvnZ-(`BYZAf zu+;f5D^9*@QvKBzyRd7&Nkj*+aCTMY{e_p#t>1QzbT>u~z^kXoc2@dQ*?Dj3m1t5f z&LH^MJ=Ez%1)tkq#pLv+T&R9qlrGV{+CKTFcx5#6%DH1g_Iw~gE)3d^c$IUAqSOqy z;bOxfRtM`=GOZx z&pg3qYOFG_ud)Exg^6=d{{&l;VYd|t9rj}T(YwYMGt9}<6#o^aGrmMQ*bh@e@eDOX?;n`6~+FOGaavZ@szont`m(y+lNKcFvCGc9i@b(9pQ)e1Zr@>OQfF-OQ)6=;)V32Y9)# zCO{ozv+-XW46~W6S%jN+`jPu+=`EYiR*T{D=qBqi43pPb*}*rSWHv?V2ENoCEIo)W zc~qnPKriC(!K9}yPBI3fuy(p@Uj9T$eEcvAv;ATANQsSeisF`o(xi8HfK8w>E^P1( z?2{WJ&Qvs~J>;&{l|AJbRra56rnS-? zqDp*5=G%>{wSwA9%rjztQtiw6{3i32eHikDTIstuaU#_cA;D_1Zj=MXT-C~~H$L&1 zT-B-@G?otU96hYO9O|X3gX?&wjLOMs$%!hij|+C#OPCDzoSe5JUN2W`_Fk)(4odI@ z#)nx5$5G0b`YV?)4aG@K=`#lT&y_tD-yDa$6bQxoWrf{6fyN@7EZm2M+joP(NKVE| z1?Sb9_`RBAUQoie>*s!eilV|2AfF{MjzYHuA{*20msdVm^ogdDN^+bF*W)RHZAtT= zb?ok*sdhND(U*ZL(SvY#j|mAaA3&%0vmQPW)j6&VV+|c!Npaw2Y$#rAlP%+vI3!%G zy$+=^GA2Adu+5z>jYL=@knNQ1TMojDA=K}Pth(?b=N6~S9Ba2Y(3O8cZ?t;78^?T7 z(rN%ahjxo-JtZty1^hP$36DWSNTcqc-p7vonIgD(m044$S-uAKDzshaHNjInF4NSfxx>IQt*3 zX3WP2>p8uvxoRJr+5g;C^`XCM+GeYY^dwCavzLbd#dLwOCEodp+;+sBcsOr9O{S-2 z1C4Xv!uPZf>FQ$Qjv3=-XL5SR-yF!>(q1QtGjm@-mdFSIC>;> z#1(j6p}q=s{<^Z6G*j+)VN*LIdI0YSve-JXFYaFPMP>X-NXy23&EIzd;-2@u zpTPFSId%SG!aJTL47z_OthhITXz2mNwg*YguCsg2VSieG%OISL>2iDj%!Eq{n%C== z#m+#!b?11eb~q0N78tH`{nNWs<6E35G997M7@HKl17N>8`c$DA4vk!>*}uk!>xAt1 zvpsRuI$E2@2l?+;`VmjWmTMKd+_dYdqGh>}2KhlX8{7AYQ){nQ>FH2qxQSE`LRS#) zx?W#Fob#Q%)#%Bd%4CF$Y&E)+-GMp55~e(@x$L-@h-{wyDo!Ws9Ta<};_5b`r$)e3 zrt>lMc)~-VHcknlCs~&c)Ajm*?KR%H4YzEzByuZQWg4e>7iDJz!s|eu5qITEkg9i@ zSf|w-JaOoCaQJvfyvOExd7eW|js(_2=at;#K+rFgxu^&K)shrT0HM5YcXwdL3rgXH zh|aDA(k4pS6JTuPqxNZW=T{@`OICY0n(}ZtS0P#8#=P^W_U7qp7Ge?M5{^lik54ve zC{>>Zo45}4-%~UVJal5TL~(sHY#?_|HQ>4$#+ozhJfj9tecLfo^-OyLx2Q8&Kx=0I zan+!mCZ_RW0p=MU>&`^pmCdf3P3t>oH}-CUn>`7+bFtFV*BpfG$Pc^(KvcFYmQa&_ zvNa(_rIu4s9Q}VZ_7v0Y#Ov_zkR#PrmjoOH+V`+@b7C;3QG;AcD0T|=DY{#|=MJY$ zF}GB{P#LJ@Ez z@`)|z6wiBo+sm6(YX`^7U}s=@9`<6Kl61o|ep72GewN&n^ZDTD_{#Cl1KI|Xbo1^i z#PiPiZ#c((A%pECf-EX-oAg+Xsqh7FHtJ40964*`=;`*wHB>}r@ttHi?F{Ffg68+g zBIs?$pIF(S4E;z+MZR9$Ug*Zo$q`|G2|d{kTD)jjV}dijT{(>Uu~Y*iX%E_EL%RMv z*<$IFIpj30D2v5sDS>BSOO3~dLh(!B+6xfd`U)JPM=cQuDrhBGF7RhAhBBdWvK^}rC{JS7a zd3b6f4v5{9lKu<1l^QDIB?V8FSN^$X6ea@~U%W&R0TJ&tkjY7Y>-B19yk5d_y>?Uu zf+`@F45E(b;qRQ;KVlnBu->98fZ9T-o=WBrUFiGpE}zhLd%1$ zg*%vvq;LyPBBO=@7ptQFWL|LZucH%2H);{li%{9U>zD=v+N^aTFTqz1Ixck6Ok;i}m@{&h_Gg80SDOq{EZ-OaR!4B4lh1(%gA#A;qKb^2-{9=3G zy!9~%M_S%UA=`AeT!hMe|J^Ht*4=>q{K?W*6AQiBgC=od|MNg&BGlun>lj1{1ceG= zFZm9$71es5pd!7GBQwO8vE%9ZJ~KPe6_h@m<2BO~1C3c&_e*`a^TWh%gmA*(9d1tQ zY6mY$958|G{x=a*$GLg9sM*T`$ppc8+A7X%581|q1|E;bMt@sAyhTOL^JLSb7;j#E zcki7IN9iZ4SM4bto!Ub!=rlRR>Dr3*8@WDou2gKx&hPL8giO_ z!?Y8G!B6~quNs8qBc&1&lBW5|vH3dgU2siQ4jJz97n_caGdXQezQscXOHA?hWfP$n z0nu#jMe|j+#j8(^lcIe4CYoh><^i#vF1JQ?7VnR#4tWHr*e`l>)sRzJG+M8#OoR`W z$n92Bb%+Q{`UEtPR(_}^$NH6)BtbgG=sS9-v$W=pxZ;JEWl=}R+79(FXmBfx+`%(I z)c=$qCLQ`1X;B-V_H)WZVTq^~b);f)cFu3(*Xa7|-0%Ugb*Sbw`Zd!x(aSAU0Vrmk z>e&u~qC5Kr_eJa9s`^jbuMV&9FbUTr1Xg|&W?4tD4|XFejX=fdkqff9j5s99+X;Y# z$$JOUFy+vlon%LHyeJV!bR#^iSLiu7 zDCo02UBxU_YCjCysarpH?x;DV-3ca^=$bh`vmNJ^-)rQ`GoNbc>JblTE7zEzjm7lJ+WWX7lbvk{w<57Fzkg#zRaIq^EZU(m5GRf3v8~#`d?7D5rbjNyS@R(+UQ(GS>B_;_ml4}8< zZtHEIIr^<_?K4Mh9fHghl_52#-gug(Rr9p7MwoJ6>V(XLkTkv~;$;OS@W{4(duMXT z4y5rAh1#kYkAoAxmD8xg?bs~#d6-g3^X1erj!6~)`e4(#uOnk^#tOGXl9eA*Nt-F5 z#_+|v4LVGQH}-8|z*Z=>3JJUI^t#=kZZlYJaKCuCV+V}xQyP9td;nzZ&QbS?YBm9x z^XVYZiq%+4G=jj!qfsLz(+#Q_QhNBgxwjQ=j0Bh#7udD8ahXC*g?K8i|JLRMPzn1w zKZ^=Kk zdABn^s2xJlAd=pCIJ!sKBaGWM>kb=r*EQPNK^;s^8Vw;4!ucAHKKA)?2h>=oM*z3| zrJ~n4e^Yk@y@sad)s6t*wMte(Hbxxt*0f76?i0dlU7IA*cka&4H%~}+nzp!QJK#5O zSIoYxfRTGFL6M~T3=s=^wH?e-0P7PS*;0a*F1cm1Gs7eEVezj43qO)Z>|5e&gyws= zHU(`6BWKRd+#fIO%v|WvJ22t**+BHPwmkCAK{0IZ5vlbp9t|H-L`vJ% zDv~!%TEHlqxVgU=1J9-VB#6wWQBh=;Vn@O+l z%`ZQzQ$O+$@^2~cg50U)?lGMhFi3f9T&AzqX7Z6QLq36^n`az81pJKu8Oeiq>W|C& z%)&Y_X z3r$N-agKXQ%|1tB9l14~<^!=0mO)ru@8cH5bqlmNP~lKiQr)I!?suF|y`KxQZj9I-yb7%=Guz`xZXsbi;X5C`QD!&}%v{fXlS#ns+(m zAX;7dz%$z-UC*sbZlsi#PCR8onY=OEg)pX+|nti91E+iCK_;ybF& z(il6EM{#EjXK{3`$~%uYd*t5rP%FNa#vY@ft;UdXU~#^{miK94sI^kuIuDXpFmC)L zkh}4!S-b5E&2zfLZI95_6xPSEu5f(UDu+J|vJirY4AI5>Wb z3*T33q zUW2|DVb7orxoMLuCYA zHvDgRhzoaajtTS6caj96l^{z<#_i2nbW4*h^qOPYGYF=@3gL|p>9vM@(a}5wD}izx zgDn*P8ajJP@U7N*Xxovqz#Z`HTB$CRbOKUWvKA(q-GW^-9pP{szlTQ36dgX$T0#f>`*kvcueE0z8Su7WWYMUWx27rtIo#H7JWJ)KZWjr%wfUn+i?$Ntx9W{Z%0z1l{dk1XC;7 z)d70c*FQOLa(XNIP=vzi z#pk^bNE}&w40+Q?U35GPpmeI*D<}92EG%_x`kc#uug6&44`u zGsznWXzjjHq{VrBf2%deF>V_)l*rmnn@SxB3%ch7NfS`nJR(y`GPTgX{?ms0c^S>f z<8*sAy{y5~@wqOHY7hlhvqqxj1|^$L-D0u+&b&oJE+UiWp@VyTkHhKt&@CFCYuROz ztSRHQGC(EN$nk8biyiCW3tu8Zg!O{uMuGlK1ov;dr7uJQ*N%+hJY(7W9Oz6)aJ=GvgAVLZ#s*Gm6Wbo zt0RzS`1Gczw(Jr*0pJeF6Y8eF?G2)!kuW1d{ojDR`{lcv+cR#O;1s{g7C)g&rEr8}&fEj4xI2)fQGIthg-w?cKD2t1ykF;c7iDemJ%Z6KBSSZ(ni7h? zZF=S-73d?}f7tS;cbTOoMnjQgURtflJr4Ne*c!_@7jTVb9Ae~YYC(`s!B0}w_hq7! z2nH}oCLqXv9)7=0j%<8~l*p5unZcPsArFBYax3BL-%Mu|D3Hd$^pZOs?2cuNptz#^{xY)uv+?y4mY?m>J}{heG&CDOxjqK8TTp$opZH z^nS1xZJI3HEf|Vp$#|o9`9&#T^R+PZF3AKZG4u8W#{1Xz*S{)JSutajmt4D0GA3ZM1Ij{@U z>(W!8)@s%84v3;rpT9}0;5>1U;~sD!=@_#QBfx%ttMbQ=Xw}ZXtr5*Es0)CLrFZ6; z31Ie;yxIoIhaWy4>${AzoJ<=T$K(pj5ZEs)%5<2~w3hcGnT*i=+V^U=LJo*k{U_8x z_!bc7oQj%&B<+zWHYg!HvsdHdl4OtG?S&1^ic!M|MS`@mXbX$-x3eCT?E5a%FY{3s z?BbltwSNu4h)VNu?sw@k!m!S)x$@g63kpwbni+Nxn3z?z&@BG>F1%jt|5Q_JoKebB zp)@7(0=$g;;Lfjs%HpZnWU*RJF3SKYAmJxQ&QXa`eIWx=-TwAx1MrU$^8=36nCUXN zG3euWh=4b43x`1gg%TWrBX&l^jvGYCrmx zcxt|vIqNU%Tyhh^H^1p4;BAY=PBcSCDHK;ue}HoBaV!Pg8pnM;NwQ38#RGJ=!%1)p zFmQ$z%Bmtn?sa|~)#%IDC|=4pbBZ3P#EB6}rz)~%gb%^ztn+=m4ViVi)Lh|%Q-3G( z)mOH{xeqZ0q3JIVf@d$=Z6~LRFsEx-YtBDq8SGfxu)y=oRg@LGA>cfW6KrH-?96ez z_;vVfbq#B~wYR5ma67xwTrA>7f#5#iuC@wqvAGBwOr92%g{W!?#D z5pY^$LvZGr?0vc}&h!YY@T9Qj9$R#7@6CI1I8Z!&zz_Nye>hpa5vtO7syoB+bmb@m zG-ExyslU8;%w@SJ({(|~X{q8|`we4RJ&dnd;93}*avy835dNrWm8vYfS;C-L&Hgzh_x z?(2X)eH2kvnoM&u_tEYWg-?|l3*EM#7`Pw52aJOQ2dCa-ZD5ghPtEA^c?oO-_mAh{ znl&D%8%@S7=f)PdIX6!l*JTC3DvO!X?6!*_i#M5Ts!!9<{;7BUjDBb3q}se?y%~@A zzw04FnEq&xcDk4i)?khVIvrmBxzaD9ET)+jz5}P4@x=1 z>&9u_+e8ja`i+S2@N%bAZ!;@)lrS_cx@UP-?^YNj9ENH)0H>pp!k9eoicgR2AeiY(;*bfKRM+Fi zwqL<4&T_C@aw?w8HgD}1`hIpBxOt*AX-QC!h=G$z(*f)bjAwC7?b7auL&xjI_{=Q$xP*5 zJ>gA)ReK9G_Rnn(&==+{KMDmmyhR&ubs9?+hr20G7eH5n9Z37ybfl`$_kMn}&j# zj&)p!`m#QB+20^|aec*w8iWSy2MxntvQ6#^*dRmzhBIy0b0WNhk;_5t7q-E?+U)LM z(6*xVjgLChX)feDUqIp9DbWxx2;~7Q4e%AJHGb^xwXg-8&A1myxVR;kk0wGzAg;S=a#(QT_S4LsO_50GIT5lBCX*or!fUUaR^>j6d zg5gD#p(aDXdv7_n^>e&_su!E?Z27~yKkMSjvP#&0KiB%F)%Gb%@+in6ckzI-hLPsCFzsbJ&(})h{$?a8&Fu-j(TBP|-uN;f`U1bja2+Qr zwz`oe5sF<%c%;OnxweGEL_mh^n^^;b3#$(|eTjOzQ{YCK0P5-tCl8kc;%Zd9G54az z!`ZYV62WdZ{&Ap%Rr|2q7!8*Jes$jq#^q^skK4|AsYA3O*S-ugaq?<~BI|md90fsz zl&Ie+M{T?pNBvZvskO(gywrIV4jV1!;#US+G`)WmF2j5@8;kG@ zg#d%`-RyGuPna1wW%?pI6d7OaXkbV`fqGcCW;w?)*u7$=H{OgsG6;+U(TlV-G)F@u z28p*}a%mQpXf&FtZS@mRK>#k?Pu{reE2Vd?L2j>yjU8?EO6g#Ouv>EhQQ=pQcNGhF zIOYcJx-}nhQEm;iuc3gnM&^_aHS)zL3}40O;*n=*31zO98|Ez>%(073O;g2`zm=9O zU{{?nSy{ZnUUiIDz7LRl`wg0AF9P6t4fJ%gz&0eETy({RoJ6EXrv`r0f$~8T#&iXJ zURX81@R#KJS{!nAjQ1M$jbQKB zQW_N=WRj1-4tedYW|Zn3Z}$^>xmVB0zSl(t4z3E74oAr0ivsyc7hc2}8DWZs1;@(= zdyZ$9S?Tc&U1J*WNsW&8&%4W@Ni7m=+8kwPPJ+1AG+<8GX$af}$$;OOL&5xmHrw#R zrcry}e!idVZ>y#n#ve#EJu8+J7q0LPib8G#n3Ubv`#ru%4@`z5$*~9yga-(gz;uT9q&s&onUbP1rB@X#UP9$!WlnQk1{g z#Mqqt-6yTwJttKb;EnWwp=GQftQ#x%Ps;TJ3RFoaNDlLZ5Q%{L2S=5X8%t(A;Oqm*I%(YNZ@U`%EB8MDeMHeG_AAZI< zT*w4?s;zGjw#@roq5Lo;V#0F+m6iBSFiQ@EDqkik zs4N%3ybsXoRdFW1Cy(aK<$hOZt94KT#CSb~Uq65Fy7c+uZHY$V&nH={mg{)wY%){e zRkmf|T>01lCC4LLS#Rxp(=mY^@6QF%w_WdVLu=9>eX`|uI6=Hyqe!=A%_YL=gil)& z+k?4CZn_}b2qyZkY;(8T{+IV_Y&*xz8<0!a(a)bMk29R+`cKt zFTL@8lY6169$kuXAtmg@jD#7^vNX3F`(4)+1)cW=&w)dI)(qYitUr2R2|%iN2Ff3L zgew`GV)ZfF%!v#ua{~?MxAruJC*>UVCRDNkvDwc~ucCdsM>YAZwL8M$tCjQN$$UVM z`ur{rdK^lqI$x3lwsg@}+lZrxkcsD4c~7{gJJ^!A6db ziDl`ER%_4u(jnLE-X#mF&J`o&`UzcS!4$einnSyJj`WJ@t& zQ5?~qX-;nklHRxQMR-HrAQ>Ty|E|9)5)fH<=B!MA$=OAzOZfM^gpeI=Qn7$rU`#_P zIbf7Mw2J_6h8?)<5X1d2k0ZfWPeW%InUzeO*`nl8%#^9<)A$u!=Ddo=qt!Ild3EjX z7Jo`7TW;stRzK-)bzObxoH*r!-w`=#V~&LKmU4IMRZ$)R%n^GPPRs616I<)0+s-yt zHJ?h`IkZ|VAXnZzHDV%Ew|E}zwM{WLTr-QO;*s21d45mL-3HN`n&@`}qTOx!2Xje8 zQ>3M?^BTq+??Mn2y`JCXvpx_B!qTP;3?H~7P;?WJEt?N^#;6fQW#6QNzvEE0GhTqJ z1io$x2G?t3xh;VUA|ZOxwo$@}((XRK$4v973W%s3m4Y8x)1~lFmBIp9(;&+90l87BNbsxh3EQR zh|sJ8hX0o|?omKE$nqcm5aGf+WOoFmz96=VU_du{bHctvkh`QFWj90j6%j(72 zTfFp!E=c z1=(O7a_Kqx^;+hAr%@?yohjS*t*1<=bR-3byo+!w^4EAKZ@{Vkoq?wmA$*4c&2!S> z{)oD;qr;3gW7Jh%$%ZCWm+b{Y$9bqZ*Xy;Kr8QF>8g_6`<%Wf7B)ga)YM8?qC6gno z=#fXJ-f9&|b!?|DWsNpCpRFDm)mVMi-YR&Qav>djU^xM)Lp}O^`~4so((UD-2mk9d zzDZ7uj(FPyPJDSUlVp|v?FpMXuXk4zm z^OYvi>=pxGL^a?%rmTrW8n?So;7?K24(^RigXzs+o#ZR-H%lhF=ybNOPusieYHP~+ zwftMA&InLUW97C3D!T}vWd%+F!Wt7N+bk6Gqme25D@zin>ek^-&UDXx%6fd+^lorWXFI-> zPSw5R!S2lIc?dhbt_#Iui!>ME<)v6*?Vah7{<`6Bkuq&MJz54up$WZJgr5l{%#w4Zw7;3>_un!Zaa^kme#YvH8LcJ z41P1q@KprdpI$=O6CAV0mI5XHG$x`m!D@Y|?`tBxk`G1Kh?Ggf=hbPfYLPf>QOCqJ zNp}CN)2}5k-2lJB9(jtld$kn{V{sfES ztu~_#+?R9Ug<0m67>q_WDIiLjuJ5&S00K>=on3gK29)77-&v5?0*?e23k6<%;v~be z+eUl7w1xMe=m_-(Vv+qIdsxf?uI6be08$fa1FiGbs*%dGO=Kc<9Q|-`Ej}_=^Unc> z1lpH#si#g^g*1}+`LBG1@b5(UHXgxaG?^~jw;h5Ni{(`D#dg$S#QA)MC1CDzF+G?Z zn<~*^Jrnt7$GF}Kw%F12ljg%*+u8-Il^^a-w>Sc%$ul#bRNL>QJ*u|^42YOo;|JWg zzXx`_nW$Kb5f^UlBpqV+J+B`Q^pg55%Q8#qp;IOldEV?vE-xbBCmbA9^!(!Ywt*sc zy4Bmx1biPLO=o>tUaZZ=e`_6*#`>g0x8b3lU|+G4qh3+cJy3(Gsw&z|d@Ec(ZLBTy zRBRGUyyBSbz@VM}80)%Qvvh9MKK(FS9!X|k;;XfZI^xL7YbCwr)s(~*L>>mn9{X2-)9F&6tyZKIPnZ_l2a#|Do5pIULCR*%8t3QNteCr zSmg4auVvPz25#s;PF~GPhH7>Rd`Rs~cGi*z)9Eh2(J)jcQa%i81jq!FGw&AJE+lz0 z=0i(;n}8^A%-DGjpxt6?wY4M&f*`rT!%eIa?+?l+^$~^f=#A|H3Lh`AiZk(}`Wqs+ zy)e5zT&FP^CY=$)N;>m5uh#5N6+n>)DiPjNZG^)(%hpt!o5$1LFV}4<%&`%^1Z}=m zH#skO9&jN{;W=HF3=Pl+&j`LBdfxl9Ik4?A6@{`5#(vf&X>D-MH1UidrLFQucJ5-v z67sxX`%2etWU8URuR9iKzF&Zu{(34w_(tv934E+e)ORog7TRDnoBgd0A zY`X3(p5KGP8IwF5hB4;KM!@)4x_Ce# zPOfyGj;%JZb$Xx1TX2f>+5s*K`sG3C=JF`f86*>JsP!may3_lTr@B%IsJh6*^M|2*4id&tzciaUfm83WuBS zW?>%(+WMi2CM=Rq!RF)Rp5S=^wCJJum6zl?Jjg5uLmq0cxj8OzC>zbDmr@vZJn6WR z1N0ONY;y3L4lAl}G|P;I%3inbuVZmuT>mso!;NKV6y{tyOE#4`G`ZqDie4%4iWz!* zj33@ltpKcYlLZd(sE#5$^uNOcohz#b2g0B(Oqo5uYq=oz0B{~V%WzpfX@g&M+#3O~ zs?xMav`aLFdsT_%xlxQLfP$KD)>YxOj-FNY1h`XIZ|T_v`b|8C1D|(!`Ig$M9y)ra z+%h+*u6nq(IakP--j7wzUxn1o zzx{Gw?00HDQNfrnJ0mkw zfUBBx_OWcjsxbrDG@;!NX|&w1B{$L&BJ&~E55!W?0piY1ZIh2CNAN`ZFf16L>r<9i zB|q<0#y8M)X3MmOcNy$B9}LXJX#f2b$Pm;Jin8$ZdOi=3<@89X-|{(QuffXgeMls^ z>Grl2Q1VRm_ZOl~@pCjncD5{(f6M1>tm}@(aL}vTXb{?!Bg0oz@xo(DuxGv6m`@}- zQ*&vows~iZT-@CCiAI|!%~D|+%F*@<04}1lh9wxquOMFGYvnTnr`CQj|kQ}KFJbEHroH7oB5M=PP z$20PF#US=}T>{6`p;brkd%E7IO^oXi3p?BfDCM!F*WP;Nrkd3hCY%qrqCWw4mXNIM z53AhkwYo0mB|lfPKl5ub8>SibFDZ4tEOxA1ymg&C@@Ckoi|3CY7xr!(dLzCSTdsEq z21|YbjRLcN<{UH$H9`fvTTftB9nfBL^x^{HO(Msifr}r#5qIz_*Teb3!&|2gmFuYK zpV3fWtIp5VgB;{$tCgC-D1P>m56L$g+u3jQl=RszF1GMwlPEWCHMTECZ(Ez*XO3E3LHK(3`dqVF zo}T8hRnoKRgiw8l`>(@;6ati!a|dVEp0PV)LI3bx>g5A&hy*pXCN=*$ZA?2GRBVpY3cj|hhIc9g{tr0L{Bcgfs0H3gS)n8I{ zTId8gwmF{y*}s40@+(g$_lb^9R`^n!g7R28P@LgXyU;zLl`Rn;&pcUQEGwf*T3@N6 zWmu53m6<0$pIyi{WUb z8+~t%Y}RP^TemY5Q3eV)dBzjh)R6cVTVK}Y3lHdm*;kRx&}Vu4{QLz;Wp%oO-6a?$ z6P8SBh622Q&Zc2m82*-8kt7DV3mnEL%F=wqNm2Y+Gc_scM@-0DTO$N=&;!ic8hHU9 zRtLeFNiKQ{EB~qrc0vh$YTAgl%W-}^0YWDT8&Zl}O&VA?tFu{1vx3<*ett@ESgA6>uAYj*&GbbLP z{X6DSczJ2@&_tuS1z|*fb^ULgxBU>jz71dJx;=K-Ub230kh`c-3hNsCoQPT z7;>JG7Zn)rJV+_8PHA>ZVuk0G!pFC;}{_(z(Z&3w)5Jwyt{3`5Sg ztdP1+#lL3ve=5^mBv4uPmE3^av|!zkr@l|NSUN+vOyK<%MBNO@1LMrjlqD18rZz(j z8rm22)SCY{vj68VdX$`&GwL9}gC-{SOcmQK96Dse^Mpx_t*@?e-1x|HiFO69_&v+c z2`vzZ#3*$5r3F^5n)sRrTog?73OR5l^E*PlySh&$;%pf(Z0ekn&D^tp7zPEbU_-Ta z4T0uKr%ilJOMnOOkF?(2(_Tjm9a_2&m?p$7inCB6+;0e&QtC(%_(zErULH`$CD0@x zCXWH;B-e%_+x<;MH2-UX0skY&Bw*ZnhAf&LQL#$&94W*$xMJlZrR1=0wqx)r=wTZ) zn>15}$cw7Kvv`}|BjdHf<-HqAP{3JXOOW}1JYEA|#hJ=}tWMVE>K7<{xwd_p z#<1EME&TOfQO`zpqtmCM5Vc9tgcab^#=ybUcT|XCBVZuD+REwYLnfUjzSOk?h1#)n zWKljK8-*?py@b@i`{}yUQRZ9*nRUBKnGe&uV!e1xXz!xpro)5%bKM^9LeAUxa%LxDfQY4Y2ojo((mOb0(G8~#x2S4lvg>aD5R*fX*1y%1J|zC!`v<@9 z1KigW`rdr?{tS*$^KsKBxE+Jle1fj*H!^Fs7$^zUoIh9ua&NoPc4*H7tdz$t+mE+Q z16hRaM^ZHOXlRjNubM82jT}>>*o+1t>i?fZi3!5tO?B4&?6=-B^~I8Q208cI+`v&-TG0WUyNwSCYMeuZB~{vB9olUQAj4zFZk{R;Tt!cOKSJsdSNWHFdAb7lwk=vVC ztK*y-BDe70w7>VxrC(?@4uD}8&SNI|Kko7Wth3=_ zm>62d;M)j<5LsJtVfz>vr(veuK;V72pX52y3)LOIKE+81KxBk51HW6?*`M#0sqE-2 z0}z6wIz>qlB}wPBMYd?x^>VdDg)dm0W5K?cws;f@k*|ia%V)<{Q)E@v!J?w9mv$)W zha_EZ{AmxKy>=qANma#gHA3UnD~c=z0p|SBjxtrkT^tIcvJHy_M-K;ha}Hj0yG*;& z9p2LS@o4u(>4pYfB3^3{_$PwP(WB_{B&#pU7n5tFi9B6%kJe3SylC?Vc%pR~692OG@b`S@UpzXJKa}b4 zn-@Ng{IA)EUkWBBDibEXakH$8CX8kzDxn=eWQVv7UxQl9rm?&Zy&^{X$FpLl!!HIa&eJ(r-Z+LEVmBN4t-Q#?;t(C2I=XaZ>;aH%W~wPNft&dEy!^{o2nWH%j(06I$TIy| ztp5f9Ul$agT(Dyp`(|Ft*0K18S8fJv8yBr<;7yh+0lqOnb^r?4uMn*0s>=K*C%e|Ddj03r4+_?ZKE=B0nAp3WsZl8PB8 zhbNz#pCs1-9sk3{dPQEV6UM2>f(K2dXgeASS!4rhEDisw2hw^#+B)&4v8UX(8&J6MLD&PJfNRq)6>7 z1R>zB--iahsY1SIhb8oNX8KSrfkL475>vi9G98GUPpbcy1rHJm)Fj}E?K4yspZ)>%G){B5N8mUT%zs)X&F6i4;n>6RQa zayLZK|Jv={z97d)Y8k?uV&ui~XcX2#Ynvo1v01qelPB$Q6eEhlK4{Bd_w@@`ibzG( z*uG!^_SnBSfA*q@bPhM(0;=cQiVa{D8b93ej0pMQR=78_3h{5F@7{Le}R zrV;ZD$YmH%{6U*gnDhaFtr(4Iw}vy~mI2Afe`gyp)+k#~AW=%|$$*^;T&As*)R&zr z09a4tpaj8qPi&tahd%n80B!PLfd)a}W=-4wD^bQa^U<+~;TJaSS{D~60nS6{x* zMq-rIrLO%IWqNfa zau99&m!V_(Z|nbCJv$;fHY?lBrw7Sl)3);i?n;MBbGCQESnN2UOtj(Qwv$x00JBXs z>I7TYNsZ5l|Af!K65yB}m}%TQT=dw3s)`2BNlAkY#lKI2_(F9n;7LH819PQ^;2e!% z{)krm6|FxgjuviHH#tA9 ze_i1EpRe`<6!g9bc@h&8h(2-Q77~Viw^`Rb56L|&DYvy`$T9PlK?g^DCgoHN@}FSFK8bRL&ru1Y`bwFSHfmNOVspHH%e)%7QLNfd^XZ^*3Iart&!u%D`lw8#lTmntXLN?MP%WucP# z-@>~BPOy6YNrkWTfnT2fim*3OpzMT%9R`R^GUnCd8oMei1Xg@RHGQXkjlg>=h+s{{ zQi_QQEFZ$cH4=pQ8%~z92in;w1}eJ%50J0)n#AEf<>IGCBdGOzx7GGee$g4TikL7D_1jDMN=grQEUPTmWf3p z-y+uzZEs44FXa{&+-jJ?AW1Q~t5f2kZPXXIGgCSFq^cHC>*W%a|9MbIbkJACv_Tjk z(F?G$9SU5bG9*ybw(F1G48Y+g?^Z$5zuxB(_&!v{95U>zyi~B8@<=mmCwGHJS}0@O zfuI}I5+$lVWCyMgt1akoB;tQ+USGj(bC(9su8$%-9;f>5J84eRzvusZZ2zlOB6vyX zT!`YiNP&dpP(K2F`2j5UX#Iw@)WddVpiM$*szzcLn1+=f^9mAN6*ya@22HK#ur6`^ z?1KAxr0c`zk-!1Urm{t-B*K7Y}Cy z=n&g+#k~W|?CoExMIo!ZU(g6nJH%Zd)%LTM?=nXRk!qNwyKn~9j(}3sizFJ?f5(}a zO38AG&weOdGhg-I>Cuv}9oHC`ZdkhYzw7v4NX@f&BN5!?#FXtzG^Q#JxcW1Tv=Fht)29vQQC&BE`e;IqTw-XmXR} z*wHFg#RotwOMiL!8&wkw`QKmqivxrh-S7_YEGA$4Txdjm?XCD~ub9pTJ&vIRfXwYco+bnQ2hCqDQS_Rf=D5tn$yyx zOgt;0yDpwCQ5D}V_=kcVei?PpDh2_si7J{Lnuzoep_q*LdcVA|{2Yg+oLvN1wI>Q4JIAX`l?01w_3cG#Qvm6hefy7%SLIKgCYO{iVEtY*zJ!0aitLw z?OO4Q4v=L^PAx)`!Z-*H(k>Urf*!5-7exmw2n30Dn#NG-N4Hz5`})tjbVv258Nam2 z4)nK(9yz60u*mJkZB}wJ8?Fd{?D8ElVN6pYWHD+mrlj#j-DaPw_k_?^Ogf>#mlq{T z$9bFFJ`T%>B1de@w)^w>Wa~%yQ?DMfo1zc|eUC596Z{(F2HJ$Yw||9~p-*7!oWwjl zo`@6T#yNBBoM5hE6qKaxE#m0mRRV*qV6a@F)O&BiI^%giw?7_T^BjIQ8MKI}6w_l-&UBzbF-?^fL zOd!NL>nrPsExSCeCPWL{sL-D7snmMJy|ZaHcxS{gi33f{B33|cZOH_X=}~-)TS5DR z-L^b06JKiEM^<79Dzempu&rNQN}Uc^R5YQ}Fzt+95g+F{rfkkFqr4|*1pr# z;-P=X_!vb9lSz*7!D}p&gdM4{1H#Obn5(*)c@mNmRJG8PkSl3Mu#}9g=#~1kU zuCEg^JUQ2hffP_I%^fOF#h8YgQEnLr&mVZtm!$v8g#Vk6D8h8d%@Rm;#NTTZr<{o4VefMx3+kG{Z%}f{!v|*Rbu~sW-8jtQ{?sFyf)kSuXIbRT6_?>rx}v zeJxALiM3fHslGq_^xSV<>(N9}f!h=mu?siJLpYq5!y?&^ZV3;F{M zH_6;FDO^Ik`6ow)D96nwG{w+x#uE z&a;#p=F1m|q)Ls7y6_3V* zLN$^Qsdd6pBZtA_vNjj%HGxxQo`w>-nMWx65baYjfx`u>OQIEX%hsDw_+y?vpGkin z1M^65J_hBMeB7JkyIfoWw};wM_r&6AW=y zEfj#M6u%?{tm$J&Nc8;a_Dj|gFkG(v^%YDObWs4o?tO+Hc>3e0q_{(>>%>hXr&FJX zm~cIt-IV=_J_A%}6qIg#JVET9Q1h&qm#yqX6{ckRh+79TFiNifu=e1U>5yn)V*0be zRNj5yn|4@Jb7u!O_4?Cb&#n6x0tuCnhchqL%Wlap_kiR>Uhi^%Oo+#C#;5>#9!j~0 zO=1sj+PcYCg>h!h%K&2G@Nes%(sXgytTY>c(Egt`Ref((y~Tnr$ASJY3w=GM2V;H6 zD9E8BlUd?F-hnLirBL=WobwJ;9pV5?i1+jN3C6?8idHmReLuvX@$aCPJgHX z$S95MkCK`+>p}*Oo^o>JU<#_3p<{>;(}v65m!S!qJG#S(Srv;%@fTmGC%*#Mjv$fz zG{=ajiWSoaN)@JA+;F}%Sqd&yXz%xPYR~0omggibuKG_JZ0WCMNmT}llQgCOR`0>kDT(U8#1*;|hD!UVwn1m4Ic1yG8PdhKM|` zSHpa-)wyW(#Vw8eA85N-+Md6>csWm8r>eR>DjP~Rr<-f+*_gb6)I$f|I*&JXdkoeU zJl-o5>*9sO)P32`moQ_X+O1!DF{{}#r%5q%u7{Jp3ycz8ZGs!=dOB86J-7b*N{BmC zN4xp*uieKwyWQw#Db9Pn2|ApHdA_Pe=a2hxC!j{TUczt`%W<--($OmOXFX8oQ2op` zGqd?K>RlP(_Ti6a(_Pzb7MzZ}c!ncn>b8x~q(%?Lq-5Q>4 zT42QeX#OL0e^JNoKOjG-UkiMx9Ku7kq_{QzaUOtqZ4lW9>l99ZXp~0h8B8i&8q!$p1cVUvo3fuF7H;5FD#LQ5RGEL)Tv$)PxWTiz>Aw3znw>gY{{u90h+a&) z2bK;F&qqOLK9Tb)cTM^ue1EAeol_h~kzV0;S*6lr@>qDpu2JO}AKy@B*O%^9*kc`A!kh4dankRViU3S7SgrMMo2%pHzecXL zeI;5woj0O+()QNB8G6R%Wc3TbaB-sV@B*tZdD!U|?FfWNGy2RF<;+Wn&*ON#f>vY| z9<-W0H+bZYE7iSdHf{(TGBlM|hUD^YyQ z)&azo)@2z^=WjZ51E-Z7-v%b1Cr_Osrx-Q}ZZf1@%a-r_>Va_+>1cVi`Qv%jQ-W8V z-g-dq?Hy(65#u70X1Qt;@AVf(m>&<@4chbl_>nw5r!%kKX1C>k2!={!I88inA<)K% zB4)WjF5DnS-)22IE%xn60#siJ5MoL{$j!UdzhiNnJ75^w8X zRUf(9lp;NW$HLmC9yt0lUHbC(=&Vtb7cbqaVn7e<>@!L)RuG*+cJ{|rMNXsAfn2|G z)Dz>&y)k}xXV=urbGR34b5Z;^_=KUmU8A7&`F6cN^^Un54JlW3788pIce8>(9D`mk z^HUACl>a~_AO6UE*|@#B4$}$Hq1J*z5zXt;0 zsKyDDYO}*0yJV>OL(gl+9YEt6Yu1UqTxKV{y*AG2v*!M7md0g}EkVFp(+Uz`9eHrt z$8^#9O^vT>)A47QvlLg-1`7RA_uV=j!d*nZGw1B3G4ElffQYDmkqjc$YP{#=wVvH4 z$M1pP09`ZIo+q)@H(PD@TX&uv!r@JR3$?q zA%~D?41c%VfW2f8Wcs8_lM>f<$xIX7UnpiMY?SKwg>)`mIsE#mVOkqFzkD+Nw;E0&%4LuvfoM+vK!3)wzRrGZDxy&S|y8!;sORU@f9GC zL80yRDHq>D1ZEz@$*Ie36WLmS2nc$r+gNPBSROn@LcG&v+tZG2Rh@Leb+)qayngiw z?&u!CQskkbyS)Q?oKJuhIJok~>T%gk+o}g3GiPU{29lb7Q}}^VTMFnvcWhf|j$l3H zCqG)q1*56PnZEqJ3(lLuDegVZYzC`D71L$=dUm!m;DLBx$4G!&l@&HY>aXoF+y7>? z@;ko{f`|8AM+{0c=Ta2z(ae6O80&|^TA!vGD_}lr-49v0;ti~$a*M}f*G5$ z)F$%LbtrYLXZR0>6q7%&{95jEwZpSb+kBNYNZRoH;;_QzlR@GbW5ggiWNIJ0kz(}uGj2mcWs2|4iny1mGAZ8cL3=z8u=r7+LI+A^MuCWKmiER^swqYgBT&VADKJWFRKu;e%SR)#i zn`S;kIh7LdI4Nq>8_0kBm4((!eq1eg0ASaxUC41+EK{6k_jdw%o9ogeaFSFd1V0XgT+qANzTq66 z4}2c)A)153BczAp$5+pVt*Fz#cSL3{O6F@f@?lJhTwpY8J z@)LZmGa8`OGzfn<`$Bhw#jQeeJ^4@Hn;DUge z0m5S}nN~l>LOI)Ab7^Kx4OH?b=vag?9M|=Tf5`o64>)#| z)lb1Z3_e%cDHFS>KUiI&Y?iaNWA>{9=68HO4B7QMGt7YzdWflSR2N&W(4Np3?L53M z{dyEO0Og2vOcidM;BzhiOVsn7nftR3Y5gh^lA-hm}{=NESIb2o-&dyVBI)GNXcb-CXsPB+zp8Fxq9!Rcv1#$ z{K5nFjQbNx&0jOdZf*Ib@z{%WM#@?ZHwacYjh2txpSM(B z3lSgH@cgJwv2COoi+abLOyaCtiWrwZ>+yUydYVC0dP--yH+RnN9<0MSZ>N{ZI>(6j z=V0>rFD_|O0qwS$f4_R1{5IXX?xt+9NDjQgDjr$89=>U!+;TDoU&6ba;pK)8BaVrt6J?>28koy1)D+AD~ z=d!~jzZTK*n=h@$MV2Cp*N(`fV|j=pp}MIO64f|GWY*~;j7PP6zAdrEMF{3C zUx+?G5y!34c_~Z5fsn<Mv*xTi5FyRci|rwnWh!h9qFgH6Aly@LG6`UE z8+@l_DEgMl26u_lt_WuRO{{+7tF;>%1d;t;^$ps0Rm8`!nRfbyxhsBW)v6mvrw?Y2 z>DS^d*e6G#+R6%EvH^cB^z7*iT2tdBMQwJ)qI;xEUHxUPD)qupRufL1n^VHUN8Nlt zs;Z8CPR;Lboll01rCp`47qZqs1~*zSH3h9U6^HiPro%e>8y0$61J2Dg5Lz6#V zx<~Gf+`3QBCIsf-BHg;RC{LWOjMs&R?LHOgMF^-VSvdjFa`izP`_brZG}GHzkQ*gP zC%5M)Yv%OZLdgTayT|H;lPKub0C1Wsdqp1!H4vO5H`piLck9T&n2lo*j+1#Z0aY-=ifEoE0y*eIl6+b{FfFJ4UO!olkH zwd%_&#cP#0M}!MX<`iS;6{S2k?%IyUOidHo>#-OMfj_(UqlhJ0?D0_u7GEPKzH)19 z=Rin$!wHyDEv~9CZ#VKk&$@kqy*&(fN1bLSOn5Dc?v=Vnyep|deCP2H$Gx5(Az1I{ z4~vsYNgJk@`19eBuFLiV4=*6rPFn7oXvz6bS^`3Ou z)ARcOQw882-&8t ztPfY`Ue~Ik){)}J?bC|@vG}kG7tfs>9LVh(H}xB2RwkKmqNT7hepL=T-LZkfN7y(n zDnB>WIjMIsuMvA=IgQe?B8R>b^kKEyEA7S#pdt@bjLDFy*urT zBX%@ajU)qjb+Eg@f<}7XZ0`|U_(kR!f(M6^pq8jl*P)32Ewx1X!5;=hm=7?GO&`3H zlssV+y3#^^8Q&qW^VH-IS1$8m9iT}|%xZ=#ZAX_%a+7uziOjaEmWkvNbVGENuR3C4 z)cNomd*80?cBBv($G&#V!`IhMv{jIe0)3mr06cjeM8GRC6iV8MX?w@rxrut1x@Eu{ zK)BQF7n9DSzb$Y$Jmkxp+XQVFvFv%32E5gk?5vA$)32@tE_=RBQ(R~goKa_}%etR+ z)7tbNJJMzm25LXw|MCn(YG{+?y&DL9>eH`G!9}y2$RdHmoT<*O?ruq&3^_MT>X5T1oAeyraVcl%x_@vfFaZpC#^kfHIdHYmv4h|c6_g1vPax7d= zZ+r{y*;O|(WjFkG&qOvCvZ{aPLNf{YBnh7%LWMSDTJyS9lS*ACy*;QT_3H%hiT@F< zt)4j{-OnVSa?UG#hYtt$MwfH>q<5ZArEIw5o7+L^@N(!e#r^2`RClB8jMn|9fHKh=iwLGS;Pz66CB1Q{av(Utx`%oK|~^0MpF@V2NguUajskvd1!PcB_->Fh19hL%@v;7E$a);2#Y9?Lf!Cw>6qakTf(GvVZs{57i+? zcDya}D$=N9a~{cp%t>Zf|=wFS|o0n+5QF#bBmziz76^0 z8_X#z%S-ck)u{Vt1Evj|;Bk^K_)Y9?tUEvL)oUA+_=3|p&c2Wnb;bdvo^dGZ%-tXh zFwNVPX*C@#D*E${bMx1MKzW2AHB_2dD#zWJ+*Lc|nlPMRkgc3P_m9pSJ|^0c3&w%y z$d`f##rlm#Fi)HMA7C{@he48h@d7T&GJ8$?T%Aa$Xjq%N&k0t&!FuCAxaEL~&olcim zKJ|r#3Psi7Em_0|I3X{ztLH$uO)@T5;=)RMqaVnX6}SD5Tc2&=Iic|&ks$)Rdc=sB zGvr$P)uh~U_}%j|g}Y2W%SR5-W!2ybYktCE>@JZ>hh6+M;U_D0_MQlJAuy&;wWPNj zwfh20OO7zSoj)@#`o5VYr|R)=ox~}MX_Q6|l+(k4D=LVTWSnSz9zy=j>`Gkchfi2I z+_%9_Q!w5NqX@X|(S3v_h&X{pIf~M8PoA4^(rOEnN5k5tKLD8?MA}t1ZI9pnfUM&> zjwz+7rYVrvmXX2#1nZmhHKC^2y#w^$pvg$d1=(Eq_BJp-?_M2+!{A-%TH}hzpJn zedV##lO$hNXv)w-sZPbn!hlgV&WnkPQw*Owa(Oy6{DOmkc6sQ_ zSHn5!o8t7xeBT!nOC5+@DwUh>gDDS5cQiMj+I{Q!FSbMpjYfvF(W zi%(dwWLIM-WQI_2jDkC-X!_6#ph$F+jLHjxUT*VXCpq8$gZAnLTFdyx8{)%|-doKSq# zZ}xY2X>XQtq8bBkExCq?<%%Q*Pij!b$up%-=3-ymEGn!r?0Pv(gvRrSj?Hb7eI_f6 zQ~gCIU6-5_as8vZt73F13>WzHu~kE!?=;D?W$xKGIgXd(?!)qq#W0j* zxknQ1DC~9+28!*ex$}k{NgZ*d0Acs1hju%{4k@gV0`;Wfp7^pMqTx>f%dT-}qjo|T z`Lt`WO=LFRhBR&xZME#EuVyoUQaTCwS=&}Od*yT7;1${SQW%cUzC;p~(j>?g!9JC= zde?`on8=;-$L>m{AK2eH_N=YSK<#~Fm^*fVrlihmET=UoioC2Jc{zx4Sv3O<_&sZ% z=={Hy#Yb3gN=%SE>%Q+CVedTHb(6AC-*xj;$bI|4Wgp)O{sTl=!DO(p0-Z2_Xk-g` z-eqo%=E#R}%~^&-BX*Als06RdG3M?Vvf;aaOwl;aMm4Z_{OfDu(1MYupVCaH!21); z9C{CwN7%P@|MK~bMYApV5FVq}!N>PEG~Mj5n2u-sls;%bX}=k^RC3wOUthaWiS#%7 zO@g6|##ri)WeYYS#HM%D3XM3BNmnXXOs<^_fQTzb^Og(Ui#vckQME{BH4Go3O!E%B z=NJYn1}MbGT`Lu>r9tm7Y}-d2a&t!fs$Of+L|&Qd^lexR6LKMQ_3B4^?VGZVKQ~YF z$2P**9R^rw9;IovnLEm5&Vugey-H}#WeMZ-LP?pxs}IPBgfeE@zOH0^hj zR#C0@#Zw5c z7Miab*)^Tr8n_FU~W>>{UvZJ=;4Rb4+10Rw%h}>=#$~#5cPLe_|Gr4tIH- z+(yM>%7`mr!J>1~G5$1AnSH;O!ukFuJ9x>V)-X$)VrI0`ODV}Z3WqeLWTx1^M=6}+ z$B}jW7WqIWWpm&3A3p5}ud;BZV;4au&nF%I-yfL+PVwh07;;H@MD~^C`un%`Nuu2V zT46(?`FY;&&kS0Z-Q3SMD_Plrm*2jNM!C_i`k_`lY~87qVkeM8r8mDqWG z6Tf9dM<^2?AO)~o8&4W-<`?~vPL;RO-1|!bRd$;Ar*=exCI-Fd6hq?P9yzXTa@|!9 zO^QnX)z^|*(N^W!*GMz5`}^oChKCKAR6L&Gv&hbUWA!dQ;3t{HiS77WpKeC3ky+@5 z087IUur!LFj^y9g;t1P=uXEHp7zk`1&L&*f1(@X_!~)}LLVJg6L@YY$cE3Dsz>Vky zTr~@qvcpv3j4$7IJd)_fx*G4b?Azx_-r4kq_kIyRZ<*pzf>kuymYcT`)(QM2NQsTn zXLm%F=qDTGXHSAv&7TNbH ztSbgSkL1e^4V}S@v?Pwx5JmoK0rP-SL^2~YAGzKEm#>hbqTSSp2ZwPEhusq^2Jj_1 z!tgDc)5K&7pVyDmc;FTyPz=Sj6 zN&J#u(MdL}!b;ZH)TWC#Gwi`)o@0Kq40myN;d%a1u|cWbW|qm<+~zuy!&FI*mpm(;xK|Vo}ENT2Tm^=RRdi1i@kS}VWE+(~YSC{jCsM+ei9|UOlw>FGTLMo%s}`pT+|!zB zg$mQad8?T$vja1#5HaY3qP3mv-M>U{56t^~l$mOP0$ zIeF1wAYYBL!?5>IURsLu$VhUkTDyX!MuT0fUx^ydW#0+IV08 zMqvP}!`_`NqguZ%W&e6&0CmA0_`q)2_@_NCJ5ze$@*`fPUN&y&KU%pYbs{~(tqf+F zL|4Sij3M@^Op%cLF=fliwZGXzQE zlxK?XrmKF1%m($YeeK@MgZ;@S`dOuD$GeAfzaHyVa~FQJrk`m9E66Y>WBW=eZQn59 zDZ2GuR>yT>YzwAYmz?@=2w_9+b!w*Le6_u>x~Ni)8Z$6xK*CNwN-p2PK#TTkx6vo^ z0V>*q+|IGoL_R9=8Amm`)w$_gLAB+vx~&Ado;B*8lvrc=;3}u^x&$nOZq?K)w_aGJ zcHD_(POi%Y3$&yrK`{c?Jy$})Q%UC@emJuGI8xXuZk@togA%JFUH}gwMTnUR(t(8m zZx%PbA+O*@Wl%LjKE~Yk$G(yx!bZhSNqbgFnSxtB0`{qDnbtw~HS10cOvAj`Q-Hy_ z$Tgn!1H6*GkKTH2J)yD)Z^g3W0Tfa9-_ zF7*AsM_1R-a(L-fCMr@dl7rbL#`K`W54(d|FXYsf$G)+IC67s^vZ>S0En$~y5_)$L z+Rj{-p`w>X42(GAVN88DiDhWsjp=@!5J(Qv{3x#=(2tTf)NxZRrm}c9f8HeOQx3ZH zs|8C_NfF(oavVQC#KY<*IyQB+<wwVfo3y;A6SMl0C71YSHnYp z;}eyKCH=|1nxJs@;mp5^bkRV;i@>B|1b?zACgYUGF>SZL^4+i#9-mlB*H>1@pRwMX z7qWODXHm*$6z z*5>a&9w5vZ+Au@kh0$7et&cm{>H%vl0ewv2s6bkLEvE^(y->p%jaXQ9SQ!DF z^G5ATL2`yJ{EO-B_=o$SeW08_XM70@5N`V4Zg#n0YITr{kJeqPFf0UF8FBJj3y4F8PBfH z0NRGlq9DJt$j%w25| zpmecO$5GGnB}}s=QWySm+S$hQ$J~))v(p8z)a6a}iy|T1Gqn`#aQ{yt{C9DFE}%x4 zzSw<91^v$a4hN4D=)t9+PQj2D8OG?KAB{#+wcuB!^_j8jBccks>VC7%Jnk9G%5Hq=lpgI+B2E+`8sJ;qxti%ZRpO; zU6`4ecp;QctFH+%3rj?cbtkahS%$KpbN8)}?-3LPlC}w)u+$x?+*DV$bBz>EUDoQX zBA)n2wPiSaO*K3R_su17sa6#J0$-W}7t97KYaK8o_tdaO!@AL}>`a0WP%sU#f#_A8 zP!Z>;tEMOE)2gjW%b^M5d(LZ7Y<63t{*kihoon<$v**Yh{JhjBls+lP<}6Fv-zgr; zql3kgZ}u5I8?{O0@EHXP4DP#&=OG@VGy@Bm;e%E22uVrzL3`0Sqa3|H3J zOL;l8LpiU~HPu`+KbrE<(Ta_%R%AZ;hP++TI%tlk{VQYup+F3jhJhSurITfRAwlBZ zwIHH*po+0GS~N-VW>^1MvjqIS zy8d2cbb_IouopA-0>bJX3;9AZNhXR|Vk$5;etNqE$Ukn>M61>WgE#F6k^E$?^Ta^6 z$ae1e&ZFpOw4^p4=oZh7-Y*yHSK?&k{X~0uZeEX!NVrA$0#0_kdd;^#2){Erj9XTo zNfu*-?k>%)JIyudpDY+Pi_DDP%M8Fijt#Et%5@qIENRqJdaN4i7|I_07rzlq|1N02 z=-~LH8K1>hgbPv1c2RK&C-0hGQx0|W0|cd?GI=^hWDBj>kr@H#jEbZ?7bF5vV9ohf*M>pWUgD(AMa3JUvqBZtdcy zLv}UU?u-q3W4jyE0uyo~C;!WvO*iBf`ndf!h)3y^tC3SnQBm~$+ei1i3e1FGB|#>L zkf>iRk28 zw(bSqi_#$kgupqRK|gw|mf;SmD|0nI4e)!skpEno2!8zpfBArz^^ zXR8#=knRK5t%L^b5djVK)IYAi3un`=?5Q(Pt*&zX%rTz4H65N{A^I3At@GKbT8QtH zfmy;?ovh4&^`gX;&zUoV4uPx99-FCFR9_Bu!3jazN*Kz49ygyq6$lGP0}BXMbty*p zNM!gE<^r=F9>MTqKP^E?@ySe%y2B0Gqxl_eWzyPr(--EMrrMH_R-_r@e>oF1Bh*RY zkHK0i7w`$>HYAW8(f>(c>pmF)9kP?;T=z!YMHGt8x0~gczR(^yQy9@8lp(X@xNTWE zS>~D${1?$55K zMnkYX_Kz#Qm32O;ls%~?D4>;@z3aa90eQ=vx+RrNZb`ziRzH3jH+7$-aZo!42C1DIgu3hWQI zz6N|`1*sdxBb#R&@D&2e7)wM`TKYQ+ct2bghmUy-G*LA)Bh?zz${OXTac-sn@ zlKDhx7I(HBw8r?S{(_wcZsE3d(xaOH^*ogprIyi?=J_Fpwm(2C2+tp^s%sC0z zf;gBr%)^Gz{Vtap2XOI|R}GFaOH|RW8))jsQ#_bd00nfj<2ySnz)65vI!+|D(!`Jj z9Jq4hfdlVk>OPCST7mIT=>C%d?8BGs*ruv$WObrGR8yqSvd|AY)V&dbk7C_ohRBf^ z5-qxg+)4kEs9wXEXlgRt3pn0n1ld}N)liOXh7R6%F}$T^a@BezlO;~m8|~S6ldQ>N za`HR^9`Wq@Ki}3}|^PCtY{G-nV1m#jC1- z8<5>-S3a3sii5tTQ;PN1ZoL+|D%s%M#5ku3E++r+_$n?=#aACif#*}DYIf?%qS*Q3CCfcA3vD!GMNnAACTGKl9_ zT1jBCiMRWfpvc8~`-%RAR^q=*L6HRXXA9=_Z*y1e;}!x%rLK?Ht0F=xGp?=Haj$Bg z?pj^!1O3QHSCE=o=QXFaNyf}JcsE_z^>=M$={>_2xqu5R9goh-yOTG=W0*Z1z8wlJ zGoJo~GwYnuDC#If+6KMu)|=wM*Glh~@rs`wijp@OriAy^heY&zMSww{@jn&-34EsP zwa`+$-pa8>tMmv9>{aS7OIvc71#*cfGfCEoee*n6ZLj^n=!NBo>Km`f5Ns4m)3lZm z%oXfaCjLi@j9l4jsa-3%FecAcH_x2pR4@65+s~B zZmuY2pb&Pa{%Dg6L?~p^u$VoE`A4v#49a!B)p(y6=JsOTWp^NcuUcoZ3BR$~+5M9w zIF9JH8EY+YZuZu0iZAaG+GAhJk(mc@7< zxzRQgsGT-h$_k#k!*9%faYq4s04Jc)+jvhG-tSwqQZp9`G-Yw0CVfL}H7k?2DWWlS z-!`psOLfOr&J=VNb;QPmy_DHB-FK7R(Oi5Z@~nC$q^w)%qc7k;&#KpI13#Fql14h7 zZoUOK@`rkvha}z#yv2Fu!A}H8&)u~pZpeXDpTFZ2mFY2BA$6RH60!?xXT=SCJ|MVj z1&E)%=AOl;09`{~k-3)_&5VhVdIBG%Isabk2o5wPz_o?GeK`Nh|!Hfk84w)6K+cv`U-vnaw zGZ7@9Y~X;sZkt z&bib@=aH`M&K$W4&yEkNUx7?Qt_I+JC|@jZmuA_dKS2a|a!E$7<1IPR{<$)#pS%Rg zgz)DMce<)}`f1d8OLM?c*EHi8v&w!?${DjEb+P(%6-c{Xp>w;Dn%Ty`kOi zxk|{C%vNsM{BBjZjg;Y0*ALCimUmc(&zbeUxm;Isj})*5>#K*t-?u=EKK|4r`awvb zg3aGM_18OP==NT$yntk24W*=K#c0;}lSKu--hDu#u>yn(l=asPm$RLFKLT9KudKS( zTsC)Uy6s>+=0WfC@~dXwNP?s&k4PkTcEIJA_tM}EGQg6-iJ(rAdlJ*@bgK;}-jA$I ziy_p{x2Sa!kA*6?JP(JvHQ}i)N&4YfX)9K3B2_BSb3Il#Tul1lRJ~#``#AwZ#g>7t zRX`8sRR$%JStz`r_{Nfh@WK!GPe3;exw&QI(0(`dbq#JS%;@{Q?!|L)Y@7UqKy*@8 zM8RS%u%VbgFWO=<%Xgvth8u!hJuCgDqLcaRxy@A~&AnMrC3^Hr+0`}sFxKIT`$$Jb z+(qk|Z1*OQSPpi^RrA%Bdq9)EMK2MK%SLc!WF%qg2m0oZ)>}}Ginrh_P9nnXZRpb> z3FGR$Hw6W_WJ!A1@}$xINhURr-}|k%@olEEbK7R#$zN~Ocp+7f?$n0j=tA}AEux8< zm`88-7ONpTBF0AsumoQ%lwK~!S@b<(OT0nb+}LKEu+x1*=5ea?`AF=h;!<3_`#epM;Zxbh9$eK6Y0X}U=KM_|ytE|90WQ;z8CCa^2UwDiIq^?wM zEE0B79Bk=dtQN65k?7`ZdUt1S{GZ0ps*O!VB)l$|r>!l@tv)pgM7Hgw_3>+7po4ko zWgJHbN9#`(j(6Nc7uoXEh9)-^Ykq5utL$BUFiGt@LxGnz-}?c$Rs>~B)^l0<{(lG} zij!|=>Ml1vt=_lq9cIxjtTc(fP#G>5$YkewtGp;TJkvH1Q~Y0D-bXlVojA*o4ZruO z?VNR6fX>hpA4@@&U|5_o7U;IAC=dd4%L4e(%?E^mB)VDbr;yN2vOW;-o4+f3+Iz$u zU`n;dX^Y~2+YBqk0a|8+7*+{yEC!$f4+(}zU~K~HGCi6{q!gqG7dL0VzG znWy4nV+R`;0C7HM-)D`|d7T!ihHc2@E}6EZLmu21A3)v&EF4QY(zoxW`IQ~KZVu7W z6B!CKa~4$GXX5@InN+b=uU@Ros5-!4(x><9NfRnrWKU2A4y^vhB`I zh!iLE$?FN-MmLy{sX%4?A0rh+Q^}R(b>dvuO**rhb`R6t=Y+P)g4tbs9I0!8r~S|$3`-aWNXcXluXv&Gw^8MuTQ3DeSZ zBAz=qoVG(+b}S$Ak)Y4SkBxcvz2NxJv0#E_H?A!7>n5@FvZV2!fN08 zfHG31^iBI$Fj+fAWlR1SmR&Br=#KTOpK;3WxC6RgH1AhLA^-{%tILn3k>92|k?K&zI1)dqYmTVIw8>)I?m(l@HoxpT#DIw|6>jy9NqI9Z z{UO1)1kD0%^httta=#|?=g-4`Ip_RNL;GQAgS`oZTp-&2I0#G5sHvqAgxbGTRuK6iK>{#k8qk9w(QW8V`(wmD+K6 z4uNz2z{)nJCFettk9~{ci~4f>gDM|0vzcLMY#ufz*XMFCeuv}nB;nZtVG=270osD0 zt})G#tO}n383DM|S1qRlgH1)VF6m>W84^Htt`5b6Q{f01gET*51?jI090hgS_->~e zo_?u>?E+dZkUT*WM_b75_W*Kg6F0urh|0uYHZHw zzodh#JJhIy6`?dzB1az=#)=jlr4wU#TxT)S&%sY}GEv4(82$+2S)-cN)gs4OHTV`; z;zG6LGVMHYI`O>sL1;b7SAcq1d=&(G&H|fjYFAgXQp@lr{Q$R0(%0U*?R#A}tC|b1 zKv7s^&h4!>QaR~$9y2xj9WZqU*~C{Yf5!;p#hAjhfo6ewQQ7xnEH*)h$B!?X{n26} zLXfAlSJQ*;F>31Tm&@LD64k&wuOP zpbR=4w_7o&v#oUpZJ*aVEga&t*{-d{1J9eio1WH`e&Sf3H8zg^Q7vO^-O_k`T3J-N zx8^+9-c>HlNS!rhQ~1a$ZS7+6P#(X=?Q9UH$^O4u0P*;I%YSnIw0Tduai>`&4Qg$W zePtWI3T4kV8^KVyJ;&i><+`1{A-SNM?*_NFk}ocrqE#%nXg3{$2X25fA_X%j&})g= zWY#y_2YP1klv$qaNW;q3Qs#3l@l~G2A*s7s6fXKDr|?lvbSFY~g^hg5W^0~oIHr2R zy{+eWWFBJIg8M+x?xILPxHKUuh-z_+V>mNIMlpw0SGzg znoo{R9t;~zd%nZz>}$gh((2W>qK{sB_F{2wF;cYpi~Bspc%BT{Ff_6GgbtPZSyk`R zp0U_@z4SB>R^gIO{1oR7KW$fa;C?*eC>K^-zr25q+f%QqxSM#~`*+TV8fE*GL-US=K^?7|RF?y%Iqggmfx9#t!)evVf2CDwm zq~{esw8S$C^zld$K92L>KJ?gyg%A#-0?h<$fAoQQl{oVqH8eOGg`tu`=2t=}LNmpS zi+`R{04HtMm)C>O)N;%BdT3%6TsPP}IDn_eAr%@ULRSf{BQO~XMR(n%Y@2ELGlibz zX8*}Wg_dc3JxQgagl9EvomPk26*prSz1=NGh=FNHU|^VdM$7wFwc8rE6Os;rosGWq z9woFibR!epM<}}*lIY;8oq@>|+Oz(_px~x@3zOUST6D@z`3d0ReUA&rKL7L0`~RGgDlst-0`t_ z?dD{LnyxUzjMJ%jM!py3h7tCYg(r5r**!(*>Od=?p}wyA7F@IMlyUt}rX|QH*2T}A zgSVzk{C#dLpMn8VToZd2pi{)1;M8n#IkY>qz0q+S4dFi91?glN!kvG(0=kKps()>@ zG`>6ACG1Q8O>ywNhg7p;X$X2$T57O6o)CB(+x6(3TW&x}u#9tUPMFZu{KGO^IGz@9 zcIw$SnJ7rpr49o4F*v+E$TZMr9>0U`H*|mvXMXWyRpC;09l)d5NH_c6z7#B7ubpp? zK#Tc2i9v8D+3rb+P)xLJvaC5U7p~@*1$w6vbwnQ4(1kP6Yj|R& z4a^YQZv0i9V;S5exgPwPQ4t<14gWEHm2eUBORTsCs|A4`Fwldlw9}qXHOe;3VzN0x9{tAi?mM+b4RHRN#_4}>wfNR~QNBy3-;5V&qbQ-M`hLySjzLH_K zK*cSaUZofI(fEx&k2)+%LZYxLyFu~W-nb!0cpYd>CIau=E1IIPMa#nxoHXp3*-0hF zbKQ@*il*b2cHt=ut#};^_MRzoi=D>CP90g*S@zRq$rkBOC(5z)$KWa@iLSUA{{O=r zyZS-&;AT&AL3m+!8U*{#Jt`p1o%vqEf?RO+-4~j{s;Zs{Hz8K zUuV7cgyH&j7F@9RIz8|9U08W_h&Nj`AJ7sZt-}~O$848P%U-$_QK}&fZ+rcH2qFpk zEFV!iZre-dSs}&~S+)v_)Ih0NXa$F4A(tL&vjtr>`CDrdA~V$ZT~y`htkZIhigdDTwzk zKTU)H!RMMC_fUea&8imr#AeO|bmk-I(#B?GKv)wgz1+26c;qEVD=pJ)-Rr)V@i8uv z5mz%gmGZ(cdjX-;kTZAy-dW;ZP)A0Tr4{oJF%20^Eq^odo6C!)#r#vX2@>g&(FqC| z`1l`;G7BAgxz2n>ksP+ukNcY6WflC;K%d`Hu6b7O2Z~0u9klL>KS6<%_@OWI4cbpU zPhOdlG<-UETRyWcEtbSgu`zXmA0*MMjIk82NLEoJ80?Rcr_qV%`V=#9p^%y_Gi|?& z>?t%k2G(>M+(EN@jz5+vesZJ{saM?WBIXuVm#m$C&v9+hQ{)uZDd*Y$>Ie>6j#(kE zSE`J92a?;>`_(z@vSoFd4*pyAJm!V8Km2}3x+9i=z-4`V6UKv{i#8`)43eB;C>mMJ zjI(LHxn(IqaS9Ji$Ea+6M@BOzsCK`&mi1ywnBg-`X8jc9!JJPhK>yiTkX;#NNuJp_ z&Kk2YL6a#$*gcDT;tKV8`ceWh1`w5fAJ$lI=Mt zbV`R0{_&*}J04W?Wml@oSuzS_CF!*O_H_eYs|93kU*;yh$nDVDJFRZYd--x9SWs zIIRH6%wB5L+xR%K&SItP{<OPg zCEcPME^^hvmHAH~FNiPv0r*3Fl@;9kNCCTF`hA4SRsRESf&=XU(}mfqh#=fL;_( z^cPR-KE+hl+*M+~a%wIkJLR~Hu-dvX84CiC z;NKUWook`Az`4oO$mI78%yUXAv>FV(3Sd`{1k`zsRejLzlyK_oJgWC5Uw3~pQ$Kgma@d##o0WK zpwSs?Nff4-PB0+h+p4!e`0_yF;YZcxvPZg=fyZGI6 z9@nKf$ojvJIQ|S7AAil>Xu!XXEc;tjI@_?lC<&T(V92heOiYq*9_mxv(SP1oG^7Ns zV?KO(s!ahTRZlnGCC?h0J!rvyEk0?;-(Ota`4=-0I0VzZM%Z))p7odG$^h)=HP(Nl z)n!!U1le#b?9N{yqFWfQ%8n#%98TEA)8T_0-I0HKIwF6jCZ;5?hR29p^>8}|R!n}@ zrh@dRd^a1A{}Opg zgsRX+Mb@NON)|soTH@e9IWZP5f9Q8wJQ(iC9qE|676eO?T+lg&}@Kg#}B^wnL9@U_M*}o4Y32K z)Uv`o?no$n)@z3<%0YJuu;ImlpSaQ+T*bIMCQdSv$O1YUx0P`!bj^?J@Fd( z-an5e3lX$VxS!aM_OZQK_REB#sGA@d&wktp;j z5^@QckKqJY1{YVYJ3dR|_W{z?gVU!=`ST{zCB+;sAd+`JmwtD5sfDtZ03~_svFr&6s%_etN@y$)Q@9-y;2hF z$=6U4fDja5_fn1}i&y$>7cnVg2Kp$A!#v00D4C_6arDy+al%su_nxvfwl-mi#1CWy zhGvwMoz%fQos~f}NyOrs{U4gxu>??yZX{7RF=A zKYMef7HK7%$-5iv=(%6d?@Dzh?Fk-57uq5|nVs(OR41X`@G&J4=%%r;JHsD@Muj;d zn%$P{#9gt4-*Ljx4hVpeNeb6xUW3P?vj7s3^vfJPtQBnxvgT zu*Noe=&l&-P~&>BfM*5#7Y6sYd#0!oUfhFGHbc=p$NPT>Ud6@3u~>|TkSK-H|LK1N z;X?3m?tOzDGyN>`7jE70XFlAdD~6QOeA5 zk!P2lEy-PAO~?*=931XvI-;mQV}7)Yd&<*b2oZCQqYV*z&7p*HoaT*R#59j9>1e!V z%dJR=75i$H7!mzFl@w-^SniWLNU@GEL3>YDRv@0XOj+liR!nQ^?~7YOV}7F6}oz0E?6Cnpp7rsJyli_1rtR}7Ou>acSS*>b5GiGV@ylaM-!E9pVg2dV)m@GU_! zgfgR{E(ecr|By+kp1v>AU*nj>eD}$CD3bFzXH<~FNh+^+B!)Rj+@~PCkcvSwPF-i2 zGI?z0HTTigDzGD{;n=~&Ccw*_rudmNHMTSFV&Nr4_MdA_2fZs!!N5ZPv(dw0{eK(M za)Nw#b5n9jOLn};muaU$q_qxl(DU8}MYXSQ zj)ViBG$Nf!rOaDf0H;s#9imsKZtBKAYQxMViuDqQbXTdYg(GmHAklVj^1d$=MDa$N zlZDs^MMP7BmWP*R5;ZF51hjd;UPf>Z6&|uvU!+G`r>KQkb>_bp+_xXrcX!%13_W1krd6S|vJ#056`>8!T+!~>9iDK5YktSm5fM|48TQ9w;2*?7%Z2$ARx-vKM*?oc zwSez~Cz0~@$!+kL^Lt4`I(yr{lTSYGSP}^{D{hDX2iUy--}uZYpes|S=bluxaK-M+NWiwmX_e1=QqFBXo?HKNfy{BOrQ)zq za-)-40~jDth>Y`4xDL$@IPM$fiWcHfm`%0P)@K?b9XEa`ZykL|R2nIXn$V(IQ%eq0 z?ar(US>x^a^RW0*vg{1{*A4i4(=mCVzh&U6uF0ypUi`#K9%zX!kp<=hsVDjwHHB(PL^>SsLB`tQ#$h{|g2RmtdzlUg}k3MuZZXTzE+ z3EZ&3dA15X-dacx2&SPU5l_^Ni*d>qq2zDI=q4gheQcHXay9ePRl@yBm|pm4?Hk#~ zUq_lXPW-cZQ{ZnDpp9`5_1`Ff6Eb*o7iQpd79g#!W}OMbEiEW(Pb08h&b(j%-;(P@ z0c-Ywgl^G3L85qqd)J@2(uyUsF;j(>z&I6W-t8>uE2mz3$w5>f}OCc{1mZt6aC;X zp#moT&6|G<|9d1l>F4#i_j76g^VE}J z)~c_$Np^{De411G)le(wqb882XU=r0zN|4-({yL#DtP8ixm|*{cjBR`&cgql2>*lL z>*GY3O{V85e9n`OCD=5nwvhb*(EIEm=Y%UxHozU-c&2Pz?wDyzuYmkp@~sciXHwC( z2TC{tO$eQRYN~f=hrxmme@M*e9Cvp_@*@W*%stX zHu(r_wXEW!%&LF0>G{9U|Cc`Ip9ZN7H;K<_pT`ZKq)&Gr6StrKOPG&U34>I&phg_Q z*k940H$@ccipaX4F%=(c0Lp$K4n=f*$$p_xSf^rwr%;CK0K$5h2nErRsJoh>rdd5@$5UCYH^4dJ#(EnnPuc+ka1$vDh?%qDzL|3Wxur7TQ0yH!!@X z6l1}G{s8;3DXX!{Z1Q~8wAs%!QtOpj`}u00MhpDfIv6GbwTDs-O$SDfD%(sc_2KFh z6cR$G;Z4$yx{xn&AO!uCGVBVF0il0xlww2p?Aoz zMml{{#h<=gw7CcT%>jca=4Y%&}>nU~k!_X(1t z4gHIB#PJ0dl#V$|DrWHIXyW%Ky9)Jm<9$Qt)b`h|mmrlc(5)!~YSqh7C<+XQ=ApLp ziWsOHuG(Bs3_=KwnzySp-!kipqZD@FBE}_C=gN&tFsw{42s_7qXofh9U3bQl{GI4u z+(o;3sy51|{wZYtv!hio{fyt(&e300dy@+i#8hH#cr5vDzay4lvHhwln-Xc}*j!WS zcIhWHfwG@9Ea223rVBMlf6JE}Ns);aV}oJ>p`76xFD+xP2!3m(cacnu*@t|23wO?B zLLnk4`F^Yl!}6kvQRPqfLu~H?VVQ%)_HeD*OqT0gi3M!8_XJ9nLUi-3lDrwfx<3|$ z_f2L0hM#PGMMO3Y3({4jxxOgb25dnxuCY_QNi)2>UW z@D<^+PiS-F{f##IC#-ul;Ho{FVL1Q5zt0cp6xLKx>0k>$rkgZ_-IVsDJCRNJumMhz zAIB04Bwp(PQ=EY5v-xtw5mUL}lxC@gXsnV4Ha^%Ph)JV`7VhU1Dg}+%!&^cm4|?tZ zCV6jlrswXRo1-Mo+L?KC|DYYPVi#TDR1wpezJy$S3MK8yt~LLz(zWSl$RV0&QToUM zX>+`QyxZK15u8`_u2206t5LqF{WoQu7ep1i1^=y2uy^0jA6115%Q*Yh_x$A0rT1-S zJx1GWLPnT)_zgs#Q<*kUAna9ReeXeXSEkA;?%};}QboQer6B(qnIZT9P>{uCD629I<&wZ>9LSic|Hu<{A zKKDyp30c|m+`OMDHp5FVDy8z9T#&fVK8@~teVojDj2wo(XJ=VH=KBCbs%PrZA{iahg;=885!>Z%13~OEO z2#?n;i(+uxBagJ;B#&Tv%E*B7E3&Dcb6k#>Xw)rg`9CA0Xy z;FVtwrk~sH4_7%PLl?ZZ{EUsOZg~DZu0vFKx@H36Ey3(OuY`aJ|#(Lls6|{eH zC{gLq+%iyr=Xb%hwzWzIGd+l55rrH!3flx9_`p{HfYQH5CAi4U) zBD~$iy_hveEh8$K2pZ3R9B_VRVi?ty7yB=}%ilDCX*?uK5tWGTqgADuuZutRZl4~Z0mXDQ`RJ*Bwe23#6S&BH_xWxhCgT-B z)l}L4=M|rZedAx;)Zac&$@jS}

sTnOGPC%a# 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%0A>rV&m;^=5_&Q#9hIi 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 z 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 z zfh@mXFYqHBVOoNeLW|W9tzUP1IHKnjwiZU&!5*UqKLc_PNlZ}iE-FqLSpG5ghMA|w zQi3ll7jv9spDRy(XM!KGC^HJAS};aQlK~<&ifsU`R#OKR#?|l8f`j-Y9@nEHS+s&XaRwEaw#5FdB<;oG<*rNU~< zjWXCpIf{#Z>I|_e;BdT#q6BptxptKlam%@$eOu zv#)G;{1$Vu64G`_N~2XK(Q!y{%gl8$6;K3-glM^Vz0T3gi2iiR?fW}MDxdO=J3+iL znFhOKr+R&F#%{lG>2W6@C8GqO;$@?i-rvk+sUqRo+us};)a9?uGI}EJ&07kT4D*cY zK=FF)1dNANUCo40Xmt^ZH!Y26?0ikd^KbhnGeT(h-B6>4&ECfL$vRe;Q?CzRSjrCA z5VM*Oo4>E9EFEWg_OVv^T*Z{QX>q1p=3?$Er{(;8j>NX@gxI^WeB=>EalBe=%94PE zDQ_-@8}#^(7>)k2Kr=}&OcthLISfQUIH}9=?rXBWh=Qgibr{k`;e$4qG+TUA>zS5G?!`Gjwuab_!$Ehs z7zH#LrtR-QI3*yF-Be$IJ3k6tif=ixG{vfbFQ|N2Q@a=2zAN6F(3&;ytA!y*El6dI$Oo}AasY;F=mdMnG*yI?;Dy|{1PcqxO*sG)c}m4QzSroM!BDd?dM zD>0)A&X88)FrY13b)j8PQ$Dpl2Wr}@ow!s|MliE`li;Y+^qMe$oB^a(dD#|ayIIf2 z>a!35`QwM>u-nz+Qfa|)cR@ticwoMoWUITt6CNbs=PdyaF_vIi4SI%DZjdf3)mm*3gs_^w*w za8OM!)+)ZK=CMP8HX*Z92#6g#?7rO|RI^mkS~Eea^}kSr`|JEd7|z7(*h(}u2Y}c z*GT1R_2AfqaZ^zB+&VH)v#h30)5H8?69`9iP)yKPT{>i4iQdFj{gQ zt3#Eg9l)$y2?~z2=ub;;UMPAm *mK!&&y_4c&J>c0oh+ZTQKkUmH#ySr}7CkuaD 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 z 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 F{ttrD08Rh^ diff --git a/documentation/src/assets/MVC.png b/documentation/src/assets/MVC.png deleted file mode 100644 index 592266625ec2ec5fd510bcc1bdbc5e4ab7435df8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577581 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%0AM4gubl`R`lui$7 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

;$Rb77qiE8-;9EMYa=Azxh~B2(R&gBxsWeTjxOX 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≠A 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

DwP9lGk}z>5o0fxh39 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�ZrWk* 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 z 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≪Hl=b90IwK~I3VNY&N_l^z-ltkU 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�v!4 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%0DFIk^B}%O)U{RGrtW2VWI+n6^w29)IXpwU&1$_U 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%0A-YcA4Gb*v1#ahmsh7{S$t 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 diff --git a/documentation/src/assets/Mediator.png b/documentation/src/assets/Mediator.png deleted file mode 100644 index bf9c3f16d61ad962990597a333ccdcecbf34f91f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549504 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 z z#aXv*gnbe7cRGU2P(>Y$JIWfelI3{>-gmiH6_yUhGc==+GFQfoEVV0q3+qtMY$u1i!8p=c!-CVRk+0+854}#-P*T_IqZ94B&8rRNr1v7`4mwor!bwb zi?Ndb<$0isf1r?`Cl!>vdrhsOr_+b<30spogrVqxlyPK0N=<*bW1AFwdPu8R+ELHu z{o>MNhZ50SvD*Glm5~i0gZ&k)FbQu}zs;uesc-y=<4m)iKb`E>U-h$-K`7EOQ|lkAH1NAHajI;d2U$rKE_}lq(#Nh4k`m+8wjR=3$GCcnZUO1ZAMp zSv@&O@^b5Mb?kEQD*Z)S3F&B)nDyl^BLlIHy{#~=(OuoFg;QaKSZk$RMvb48@a_Bt z9j}J+ISB`$)J2QI?hO@^wY~Xxw}}H9qSx)6n#fLa9K*2idH7t;mOjKVv_z=uHnjCK zYql)Ne$TnKVJ48s*nL1n_*m)A(+Tl|k5s37`FF_dklZS9ogG&B^BBBQorY-pT}?uR z6OTAgR?$)9zOQEJC7+vz&RJ;zG!SAzrE61>YbKJ2YTsJk!;V`{l||#klbP5bL+R&~~sD-hUc@49>`;EvOOq2g zWpH@hR_|%VYhXUfX2Obbafx;a%Dr>gg*9-Wn-+11Va4!OZ_4OMo{h@cFj{ttiJMLx z$B8OYu0|=fjw_WV=+}h}hNTovU!GAqw2OB4?HQpCj2BqH_>yg$cS&Ae@z$peF6t_Q z0T5BAo}S2p(+6*yC05@hcpxGZ68+7dSd<_|8`z}kH4pL9EL~8R<56p%y~B^Gv5GFA zdQBERG(~45>Wfr&8M<9=>cF@EA6efS*M#@tdw9q?*9;Jj5Ad(Ou2?;OfzI*@I^WK;I@&UeN_MTa5&6?Rk z8X&B;y8~GY6JL9{*G*j+qBEy>ZXOaK8ow!1$k1yTgizB;MzG!;vlhX! zDo=?u)!t4`78C#D?vxz!IjgZ_GKdeqT8_+(?nnsw(-;t0_x-5bJiS<6=J18|5gA6P zXSePs)?8wT^LCz4An9Oqr%4^I!p(S)0XwDYF}ix8gfx2UvC8KLw2~4nZA`?lg{OZ7 z(ThvE@6}(Gcr^>}pB^825DFHd3Attjxll2#i`x~Q?IlevY8kvZp)SCzS2z7<-6+w= zRJW@8su=p_d$>I1@aKGUa2;z4gHN`0ErIjq>ITBpp=CEQRKC=Lcda+kl|P>Uea|Cr z#%Wa#Yyz?O(Y<9D!?dH^{*9w_FEh|BUv*H8*p$9qFGYaM4E89ctJ8*Km=E(SUEQeA z-#>y0yDBrQvkgI4g4cT}3DR4}J>JWMraj0dl@ceISJc*LwR?j334=(1GnyGUaM)|s zfJ=usv89Pg#sc)IE}*Bxyffztk5J&x*Y78y6BYw@f8dOOp`rvRhpLAp)0RYqoAwBe z?fsmfX)7Wa-q+$ScYEo}@aU4^qeaTFB417GlrIcoWvG(qijH|pKtg5}ojw=s(3|?6 z1(Y`G<>}vXo$G+z_3^kv3>j_LBeMlbNtm0E*C2IUAIu7GK1EX734yc2Y{BiLV;a0H0?EhRZ_z+w?b-R_?Rx@+VNr_Isb|~!oLMJu1^`<_~^7bShX}~!rfhwUt|Rz zVc`*~>ryirBDP6$m{()C84`1!1EB72)R{pHvWL|XU))z!KpMZahfpwdlgc`9RY;gQ z1X0C_zKS8nxUhgm;$E=oa*Ki=<5ADt2(c2A+q7{82+WtH&eJDUshujuwR<`vXuWLi z8-rx_p?vY8IP2Zf96*g;#=X4scw&Z%VuCze}DA!StpZH{68BVPZ*A{T`}d)&wTeKLW(`rht=!)3EGE9~aKp{P<52*wxu z-B0|_)5ScQmH@0PRrj$1_fglGX7K7b9)a|AaMrTfeLm3@uhr*#i-!oie& zIwJvS&3rWdJ7>2z*rws;p&hd(Zm8ZHncu3|)ua{*uNS<#7sH>ET5Eo2scNPzz@Lce zP!T+^Ha+(gyLnsb`g0)(C1Qffj}zWpZdlNoPV3I{!R%!RZ594@!{Jm#nXsD$3q&6- zgPHG0!!xU0`{SN9fBmpNxnLx@q+EljwqyR9_lbpuFEoS58V!0%vP_sW4}$O5%Eq(dB&1$SHl z2O~{!sf2LuTl;NOMgZ&ej9MMk4;gxEvHK1oy>8a0cT<5B<(IJGDw_M+t9Y`@=O|_3 zQ;@32AQR?dp;_$oMp2y9yf1p~)0uHYIb(zHHBz9D5f z4uU|#yrxSy@ zq>nZZj7)X%{lV}~MjAYw%+BDDVCAQ6x-EB<|Gx}q-}lcf3H^-em)>DQY-oGtHmPvs zUAc3GX^mzy_E4q?5S(%)=;zcw;BSCBoI097L@p@3s$T9S637vl!7bORwHbJSZ5hNA zl+ki3y&lS)# z6_>l!(o?l1-M?47HbZ8Lw;a%6VlSU!0~I|y-#BMXKZ>o5%Y2Um_3izJ>Tm|-%Xk=L zUPp#lyFI*y$@sEyAMn-212?4d^-@5AywbH$9Zk`q6G^_eN|_7Qzxq`~Hj%*lj5IEP zJ9Tk{$D!iAc0{b8C9~oqO%KtXyt$J;}NDR&_N}AXTw_fs%u0Yqb~RL5NZ0d`?N?n51}+4wF#=o)JBOk;47x=|7`;*YW)UpLz*+ zP=COPuIM;T9li8b-^jqa2EF18m&EZ4fUB^DR&bN+y^*{GMrEYBP)hq zoT^wtxT3khAENd#D0dfX`Wb{5C8b=>0#&Kv>*O7D0x5dUtXK74z^d@B(IX?Em(4gF z3aC05fdd-i`8PAtd20}Ww|Jr&DD$C+|!yvIjD-Qx$T45P_rlC z16>s)LC1P7;R~bU;Eg*qf44+kP#4h)=*Db%Td?YmMlfq2RT0d=?;EW5)EvyDMU0s) zC&{n6FcPbakJS%wG-RD!PRwlOnuwvcj9)Vx?=V%G);E8J-$7Xg8k0lD*Fr9tvlt{b zTEqNHF5vp-)N^oUI$<#KJO=IKv~+S>&IHpDQU-%*j|B##tk@MP3Rx;;!K}3!G z;Q5`xXD-kaHRr5mFei+2ty`&Djq&i^2vQ(b_kUG1M-2%)Nd+w0AAUYN7t4|FFJ1wtt$$$`3bwOYrdS*7?u8__yE7 zAo9DDo<8KkdSg+ovJyVTd0c&SB!8=@C7PZ$vNU#B;J?h_Va*iVKUzpgZYx60Ko_Wu zDAeBYT%K2=6l_MrMJb`q18*kL$m+?%#V3@a99^XvSh8X`?Cp<7yp=eB6vygvSlhkY zLvECy>59l+#!MW8+^c_01FT`zg+rAvR4PStWq@rd`v zi_SrV18DET!#<-n`Vx(Rgx{KUmZz)6Li09WAp|L=-O@s0B|x7x`(3p%^%x`; zGwO3)$zKVGRC5qW1(v;l8jyB2F)`LpT|TpM=KmJD^8C0)93xC4cvs+*(dM^E-ELI` zgBj(v(FHczWLvlNi5-4#pF;@vDvD3q(-7NPX53a*62i?PEAzgk+1=W3Zj{2xzuYK1 zr4%vM(?6!7&BWL5Y6zp515QHpNyliLrFtuvYrPNbM&h~(MjF$*E-yx3OJybTcj{|1 zg@jFYpNt7mD#Q+T^>sE+Kq}g_VK$RCo<8Ac#hgD#dgfF;tUaT4Xf_ABHKk7e)n)EMf-jv698HL}nRig-RV z&Y><2_)T&)ud~{%(=WzP-C&GXX&6o2==Uxjjkd`y>mVSv8VF@-G2$=(=1F6z;eJQ& z6ZP(nhEMwyhOmE}d(!BaD%l&5VS`VNx1AVVSfMmTcnHsJTz#MyyV!RBO@%vL@N8i+ ztk5Mzlbz1y(|W3`YUk7wng3OCPZ}V;muqVff`3{Yh3?gX&u0HWE+G@PC}5YpVKKb% zSuZe@Mf)?%WCmrrA<^4f*5&l1_xyvi@sQ8LE%(#EzZbp-;TI(yPLo-_w#YcuT2_4b z_PME|pi-d3KtE#e5ifGJCGCRRsrIJXpB74iIi?j1D>UN=yU+nX^rHNh^Adw}#ch$? z*_^JjWuLAHzH(0uUWxF-YhQTnYM6;yD_Q3t>p(E1T^4W_6$rllrXNfq2_I=mSy5)k zJNS~iMd8@bN?#VAY5ktH(%`^})#l9jX}@DwF~xQgxw}O~f;2IL_I#;-Rre^(iw;7d zn=drauoUS?kCc&^C7nwy%Z;uyYP}}{0VZX<*F~hpHpb&j>ei+PgBx^18LFdI>tl$9 z!*v$wr?036=_I*M&x^v%u(B)riI)ATAO`{zr%hR^I_Tyv^|G&H3Tydkzmn8qICum( zsUOz(Ov6lRmOQPZr1*ja zwyfZR^*)evFuk*QrVcc-TcAGJ^>HEbxiu=8VoBOqJ6|kRVtO}JtPy$mvv@Sjx);Kr zU;%NOLXa<+XWq6LrvQ8XnbGRN210sPe)yfJGJT^8 zajs1lb#2!TMa_!TR9uVcyd@kvACobIU?7i??M&)2HyQ)R`U#V!mf%{_a+0Zb05ntx z%J2|dKcIubxnGqW2*v1cXz{aFW@UaeoM0Al$v*?oQcdxO2wW5&G zT}^9iYcaqLv$A2c&?N{NWiD&)(|uD^gh4J^T9e&O^h@4)RB6Xw8iz)0>`*yVS1^96 z^tEI++g#%1DD;wgKDANXX?qxJ7hEb(0+d}jIP4(2F4E~;A8qf0IVd%v6h}&AE{!gS z5coT@ZXR|2=YX93P$<-4#PCZ9y(;!c!hYR-?s8{=D~xe`Bkf?zD_3FKy7)YKvHZG)m4ln;H-KHG2m334X;5a?%-Trm88C_i=j5c0)H?mcc1|m;18RL@q zLzwFWYQzJq|HqWXbe4G}(FM++N(4V6lWvbX!@JNdiIRnOg0n;ZX=46lO(&2_uZ+Z< z-^rM8oC}K>Wde=)nIUZtH!bI9Lbtc|$(q4)+xi~T)W<$(;Z3vxa&IZAL2?-puNiU= z4`jJkHdD>*0rQ`M*`dZ@F#RP~rBnJF`~c|{yCG!$*2uOF52%(ZkR?uzI(Ynr$sigU zVqja#ljV|r3fHTZ{%nNnUb{_dyOR zE8cXk1anwg{HxS6q$~KmB3{f*n4N=pzGM*M(1qmyiCYbFvklj;*i;`jxOE#B;{(EfU>_I z`Vk@rYxtKXvoGTLJWpAaGz~7L6;>10qk53_U<&{;#xZ5bLm1=hQZBcw+O7ua3k2?x zeaaBXT5@<5aI1$|4r5ncT&HAtY2_m-i2UZX-&}lZLd=QG8^mm%C+63JiMqz> z+wE9 zWivDHfg>(u^U%u)B|XR!@JP-y!mDY!lby?;8X(v*HnvR~JOK8El2fO=dZMWD{%BSM zkzxFGnVcH$_0d1sw(=w~lM&ySngt)J1FFZ+7q6?IM5 zitfS;32mmbHoC*-L;=+9x2fj!Ochd7leFIFRwT>f(ndQJrNYIe_WY~>wGldjb_ef0 z^BL5P;jQ|E3^ogG9ix}V)QyJ9zCBV`z$bX(0T*xJ?j%NYx4N3a@4j=`ye+BZY_us% zCl3ECoqb6wOM4q<@^@qClA75mK{~?T^@Uy%WAA2Ri(7YRtS;TwP^?zokki>G0UeAF zCgyHy7IT&d83JwdU!0zl5-q!J z2T(YN8oyJjP~Y9T2CSCmXEM{aXhNlDXOyPdEwkE8H7N4?TW@F~cS^(_2IxVPBEfaQ zX^81aK=2$T`M)LtmJiBPNv69HQ-390+tDV;GlFjR%F*OCocQRVs$sBB;)?LHTKBW@ z(<5b;HwMSe$$ol(2n2RhLWIGB@0uJ>r_dqV%$*Z}u-$~n`%Dn^UJ|J#(rcrFDY`t% zB$FLzFYfu8GYIr~Gb2TH}-U*h9t@0UtRLcJqVyYegs^Ezq zHT+;Wl`CatF3%nYGy{MCFnBok;73bBs!?zMa`9Y(3D~TQJTroASywdHZ&*o8<+n}n zOOagpjNGiQY$YKKQh7)l7k&M63ewIUg47+pqBZL7Pno96U$V@9yWH7x7`xKT0wn$x z0`RLwLIWYCYS6F9*)-~A&_w7`Gi_`-8Kds>W`I^P2nW@U>MOAp>t86IN+1sUGg=L> z97QiapjDNgri~==W@9;*m8o)5iNF*^4N3aId>^rUC$=Y8V-y#+29v3mK~^0k_3qNc z{yHE!ocDR_acXDtpI#vs&dhZHy$#av{p}PJ)aT?dV>o1Odc{K}gXxZkH@R8IcW=6p zomp+wYnzjTJP-r4{5&pUFpo7vt>Xq}S((|tZWZMmMrWTP7>{v0L;{@{6Wd4G6qFcdiZ*ls?o+5GMPUF|7vNvKY!az{J6q0yD+*S z)&IYyAu3ydLx$6eZp_U7$_m>!;>i_Ppnbt;`4W8&OzJ4#ijmN$I%XGOs-xuQvQ2J? z)vui!w_a)R;h{vGti5_Za_*Yg#Hz&4Y!D+HQ*xkAu<-B1@Lf;>azB|@zI$jt1 zPU$W4|MfNh*ja{OloZ@PULA#E2H1>nQnY`-8CbaFy(cyB3dTQ(*I06s=$&2o3fYe4fL)x77H z(r-~l-SgD6SnP^<_e`21=AEl66V%_Ut;`s8e*TK%4H2w6qxiS>6~~!y8w%|O0uZl< zmAXH;0-DIwOaknvJ_652TgOhk~)((blaY_(WLc`r>0* z0S@1yl%O{wbtl>mEvA`s+|!3m7asZ#YV2J^mI<9Y5n?eAfJp3WGnFaGnB&rwL-@>0`^5ZAfwWfeFzVyWjFB!DBneiGlg*cq*5Zo7PsqKTD?iXGo!;04F z*%lhjE_!M}ySf-^==MB#eK3H~(!Jt*%BSccD4rng44_lN>r=P-B|;s%mVQk?(n)v4 zPp{-*!tk?HqupZEJluO;A2-$1)Z=XcPTsZUU~!l zPnYw?Blsx(+t6F0y71{VDW$*CCe;C}YX?0_@oku8msEW+Z4OmPXhWHlM?RgT^uOV!TqpJifUD69s+f#VPe(J< zF-Z;CYTPLSbF7Klnxj3eP5)Gf-^~h9bP}`3dhZL`_`A0^FnY$%i^lNMn2ak?gZ2Tw zZlLb{eq$CAG~NSA3)L?n7N>ZzjS6uECM;rzmYZ!KMKkuf&B^U`BUI~X@ta9YtBWj0 zK8(KInf)GoM@Ao~Q3aBkdX+U}4m7>FT4M4-6Am8ODdr=$K`AH|iM1ctSdZt;AsDG6 z5A6XHI*)?AvAii4@UYry&HJ{aBik8iyL-B|-HjgL*PGNbld@Rwepf(WzGu?U$#@|f z&ebwfI*}K1X*g7h5n@4CNR?vTE&CSoY}Cx@^Ho?=rHh>Aq`(qdm$%sZFf}!2t(w+j zBwi$83~=2dH=Gf|YDa59J?0>ogGcS0c?B2jtO;KjKxdZf4$j_49|wE%cH0%MWC)bsuB9 z@JQBj?{II&z__TmxRDT4)X>;Ku)VXUnn5-l_w&=Byion(@9WY@Wt?Box>u=B#yz_Q8CdXPRunV^8D zbDJCl=FBK}Lp4>o^wXXM%~DLGxD7Z}q#lg1mm9y-Z4%HSEP9RK9oU&%mVc3YhcdHy zG5Hb4@oI*r=j8(bR~zJaNQkZMxzd&z_ZPdiFwJbr&b!vxT;r-3HO(LQImPD0 zFBl-jbSsE%r#}5G{Iz#B#FPP4&uk!$S(X9G-gjvQAIIH`EHQi z>R{b)J!u~eh!hM1xwXkHrzb;q_7D?-UI(KL8W^BE;2rvN;6`*H0GnK5uq}c%`d;HN-#`U2t z+kuocO(5JBA1sUV)(}iICnQQ z?^S4>z;Ed>NP!^ZeH0%rFnbIyyFg!TcRY}*T+Xb5Nv<7o3HDS7|nX~Ze# zc`sZG7w~zUU2h{Q?RGJ5fTTlt6*#F{#FgtajPFlHjHJ~!zc3T&8H;-*hz_~WWx@HE zvDR*r7J9pkcU%$f9@#Tn1e)Km&Gl zYjs*Ly!Fn^_{V9q#p)=fet5`i4gQeu)VS>x=y)pgUq)MYH>7q1XlKRRgySk@$H{o`{ba`FM@lnDnH%4eI90^i! zZZ@HRM@)7ShJJHP%UZJr9tzeSgF!EuMdrnMTBR*z)`K7T{AFjGp}L(GZ~@l*AdRCR z;n}|(nI7B;E9}nqxUX%ONi22S!S%debP=yfO-tPURn~k?a_G!02Tv3AV!@GvHFqKZ zW_ZJc&PG~r)*{oTG(21Y+fgjs9t?VSC->?!`@E~R??#0x&+r*@2P^5A?&UHps%~6g zO|tiS0NTUa7k=Q9T2IFJH`@M6-x_xV_1Op zAo{$H1rD>g*lz4NTc&wdWV4hp3s`MzW31$`nAN|shr`_#md7W>?K|-N9D7qcU{h9* zt|O;mhf+(ybL=PXuEbmR4tP_%tTVDUsY zN^{9S@Xj|87Ya#u1;_bYBGWAX;>>HcRz<4!Bh1DO6aLadD<~e6M zO2}W{)*;y0iA*dEvjqtjN}oZ#MiTX^Xvci&DZ1_-S!*B=5~T zt^X-FtkUz^_w?$o;d1sZw3Dfg{m>5KTVLDt&LF4um$^?HlpCIrN~zq#@-6tIyxd2) zk{&Z0_=J<$pS72MDDpWddZxYe@xl7>D_5>)l+Ba0d#k0u;EN(Xq_>=!^*h@5TaKr= zbTch+y;FIPzYeHmL!>i{Ek3+$&wsQ~hCq&MCfGJ;Y$|!_m+#kdy3nf>n`LUD`{K@z zj9p7D_LlQuTjBD&jTK1g?i`(|y&IC#3p-=6kJH%C!84wE3waw59%BN_hE<(g>TNj> zIvoJ+eHCroMO=$+h~Nr+6gM)K?_{Hy_wDF)8$S&dkBJf?qvIcxvpmutMJe=AOWUA@ z?k6+n-`Mzr({dq$@#2;PL$_l_)jDdA zfJdwF)2_3$i83~fc_kpSyJznqMs_9mI1C08otXB|Ge&?RK%d7mFHx@}Q2sF?1{PF) zN+-F&#@X`@Zg%ex19q(RZLD9kBct_*X+Q@ZeDtkNL^@wavd{X#LXOQx#S}!xqMvZA zhy-ybSeS4@)>|V3IxX6){7tr6Be_I?o$K9J99`m+MRLynB8Pthxyt6)oU!&kf-!7b za5lL;#-*aszF6uKc zQpo$@_z_8CZR$bc08o+r==y;&l3f0CBhR3?FIi=8mNl(UQvP5g8qoPs=mYCrD75As zByX&MQtG#9ynGFUT8nO+n2A{^9ok-0RtP=;QS3(v@3q<8Ge#MP%W(ZW&GJUY zCNwRQ&+U};z-;|?UOAUpG;5D;VgWw)5s%mcL+Xnhw8{V5?T+r%<}W(wKSIt^=JuT< ziQ}hlayJ;0oQK7-laW)=Tj z!JP6SI&~|EjOSRj$#Iw{wVL1&j&-_-J*WWJh_r?M$js$p|KOal+|^_##E*#tD9dQJ-* zm`5Y{R1gE3b1Sw`2_b`Z6;JkwlkdE=CneH@-J6ASJTAL-{xbsq7P7Sdp`|cmJWhpm zFj}YQAC4ce#O5D>fKFu#oZrB zA427$(3%9qFMg%oth0M3*qAr&*n9azM|WVtu0&AM1Ff4sP!hzpu22&4pIalNu{>%C z&UIzuptSr-Z?_Tv_Y`@)aQmKS)Whf^B+uR&F%5M{t z(VtJ3R_oDH`pf9d^IDNR{Wt!DO<6U_7x}$j>QPyFVMfqjL-MZ*cyt`+AA1FLRTdja zTU{gDYKU)fzAcsVy3^9Y`P8HNA^7QK11oGa=kb+}G@~U@kxcJU!YWjp#s&*#8o&bx zlD)Rhbn{Yv@;O~weyQ5y+0^6-hS6BB1Hl>Ayj2%6rhUPuZ<8@;WKe{Xbt?)u!y zr6{XYC+)J>r}y3jStDtwNN)mKY!lXsI@p!r-BG* zTtbGO#-iE@waTilm0NQUR}}IpwEG>Yq~*K-h2k(*+VCbVXimh7RWO$TrH!=oLM)Yk*^#lp`niMlB3&Arb3+qBYR7D z8v^pjfm}7H?{t`Tt>=__>0azxGQr?*ti>P-9r_CamM?2^a1f64@M_;P2t~NxNR6Ia zFC16rUxXg+xp&ln56sI@1Lg)!T8WN7o})?^U3LQPu^)qlxz!sLmYWRerYS5Vh{$2} zX1&9NGt_n??3zC2M?Im~X{)Ne^w#$I|8UQLDu^;$-s|Mh2>##s--3fpIff6&*^z2W z>T;!Xao#NeuI6Ev8hDELpDAM%d_*J1FB`<+cMk%6tIVTdA;= zUG}ajfxhfOWR@MC-8G(x6bEN{eX)evf=I-$au)gMy65h>y9Zr$3STE{G18|wD0)Fx z@TdeN?@YmNdQ5#neqCLiImh6ZO!I7gLTumw+kPJ7EJzNd(bk;OqZd~c4w zO~|VQ&)HN+kN1Li-BS5aatO$pI?^Awq*^13Wm<+e`1y`MYV#SVgUXhNs1a_SIQ~VV zBDTrCw=~dN-632S;+2!4HM29YjsinOfVZFWRjP1I=c{@Z8}TYiKXHkED|1S1T~oiW z;lh=F-P#Y5nI8L}qC3`SXFQS;QK)74)rDrjxr(gEubmC9|4AfyPOm;&G75K3&sYA& z`D3;88$46qxb_ib?=`z%V7S(P-mxo!f|^#GyYe?Tt8WyY8GdWmn|0z-UR~ae@RhFy z5}R&o{q4kwy#=880GN7SV{<8&Yq{_NH2N6w|{hXcELA-v0nPgmh$GWjuw3~ov}8-3()WFiw<#T zSA{b}Mi+;+{T9aTa#WLLbD=}Dlu|Z_Rhvh!e53_m+3;d#<6~(B`k4>#%aoUGfK@dz;x=-WlX&IHpxGtU zt$}8vg8RB&vHRfCrBj*a^!P{b zb-gpAr={I-U*jPqHxzlvkn91*88&%suyH_`f4&dUr4A#K9UtFxyn^PJWoH zJEe9Sf#Ss;&Hw*l)fU%K#|QH^xl?_^3LW~bH+;W2QM6s(w}?ojTMUlIq{^!o$Ds3> z&j`7?`L6b_Ek0frQpP6dG(0;o2!ll z9`OP{>6@R(ehlvGF0mh=3IB&<8XAVadb!+ z&{*8j`?6Y-89L)R9y;jK=-GzXN$@`A>$QFxv+ugjoZNV7cO{1YmYii&yjR1L9Sj}o z4PeIAbF=vRvqof$Ey`#4Z^M}#0U8(lfE4KEMPw{*-$J-|UG#jhn{{jZjiax@VFsT2 zE!k9=v3oH=%;!sWbF-w+PsWj|z$PhdMzFB+$7#fPYg&vco1 zdi8aZEvPu}ObXmzHudWqeYKA{CYR@NoMwL1O(sbW_~nMFZXQPh{8~ZRL2DR zKrb=SUQj0-l?C#;=PG4eTT&EYlM6xTnx{3MjG%_W_@!4q2A=T(Tk0tg0m7{ zRo}b1x;UR*{KfsFUe%&WQCWInXZ)XyAtKML-qcv%)p$2YuzGj=43CuE0V1~D`>uHO1;aA@2w7>Z#tjn3zyM-&~46Kt`)jmypfzvf;159Am!^QM}Bc{ zn&(}*+IX*0FUDglYHUU}FX1K>X+mdPp=YRqQ|PXLPn};api4|yOO9RqvyzQSWG3D@ zyE+~G9jKkilZj&9H63nFky;Wzy&!#Y@qgsde{S5+9GjZ|#^op3GUW31-s}lq((CUr z?5zl%q%yU_Gg-a9j&YyDor0mzjEUpcb0mM-{UAU#1#c7e5dOj9nhWYu4%fn3sjPU7 z1`Ms`tN`dEj?-WkggxshcAV8**0UVh)KVEezq^t3HCd|pg?@D3(uc{o3$JzJd!--v z$f}u>ugof-VqkiNb>2DGncNfo1Xd|Qi`_69bz$k^e4siJ^_)+J8o#GY-)*7aq=q~GFM~KwZ4q>vD(uDN}vwaTL=GuoN<`U=;!eUog16<0kfu=knw(xd4AaF z7aeY*+LxpGa!>QnqNyyjoWF^OmVQ#2EIUgv@-JDqENzTwTdV;_rL;Gkh~i?8dz?eR z-$Ty1n-|fFJn38Zs%#m%N^5MfJ8Foq5R9R@ zG2VUxzbe}mEi+&@5LZ4_@B9;{UbSUwklN3XGP+(B-Pxy#j)B~kdKrTQz zcz2_eUkO}dliz>`BJW^UrO9t=t3cCR=>iuAQD3Y||2EH1DO(BRPyZ{DP)gB>)xqb>rJ4uv}{B-!{B@04+3b3TiG9YmiG2D3R-N8bQyqCp2`j%yO zDo(6jyqLs%NloI(MkVL-EjRBiFN}?X^iR8f`8bhW7;e~BB_W9HN5|1C&)15Bj6cp3 zEfWUzczj_Kk}dtux0EkCnhKx%S5AF(_dZ)*b7Cl0vYsJ!m(d_J=QVn^ui@8}88}wB zr+SN{=V@TxpYhG4AM>?;8S737N=;eQp<~5E3V%(Fu#|vR_EuBSg80T}!mrdzc07(P zd%!f6=R2X{${)4e#$szG5+O0J)0$~;=s6;qA%2=g+l7ZTqj3b-N*U230jRmiPc4 z1EER3hi{Bri}F1Ef(}d6?|1D>@-EeHl4!SX31xiXi?&BH-uAzp^TNK}f>%4Xg*`Eb zeWJVYi@!HEAG~|pn3ZzPvC0}5l9kqjQLXE$ff>=KqTbxBNLzHd@M+DcjUqTM6LCp0 z1vwubkh1O;T-~f>VS(~tQIWxTQPmwe2#!mEcKBs0yrHCwhk8BzCqGiH2sUrLetd{E z4N6I1Pmr{#fBB0I6!3t)yQ!vHE-{ibPza8^SRVCSglLVJ>b!m7_#$!cfw^boE87L|F= z4KeDE%#qimEzK7bUxZ|;&#jK;{z~qC>i%Nq<$~E=?LQUAOpoJzsSA|0lAu?6w<7d1 zkmZLjS_wZ=Ad(BonK+A#V2MR}x%wcz_H_;hvo$h0dcHtNr=MTaRINQ|@-8-NfWyW8 z)s4B&rP_+1WDwo{r1%nLI!|gsk>WXdAFstVT!*H{!!KUr8dk2-GK2KVlBF}I_yFx zio;XGTr;4SG92=u1pu;bqWRmq_BgwI|`c+iTd%T1>jnADg~w* zT8PrgJyD(Lh9eox^sLekeLBQ8V||;H?cF9t99!X-n@@Tco^J(bow(aF?q6j>2zlS% zFyv2S1MZuKEc)rh8_$I~Pe&^em|K|_){0YymRj9L^R8qMU)$7A-+EmzJO?r%xw&4B z-;Ubs1FSWf3ynTLj5t5qzpy<`QwOxm%I!Ii@B1e6A;5pjl&9osyY`k|H#;#8a(HH< zQtXs38z8VTsi5`a&r9~#>$BWLunvU=ok^n2L6hObxfga<{`MMewz(rU`mbuL!PcOR z>a0}E7w~RBA7Ln9KW6uW%kmep_7pCwe88&!`jlI(tJi zZ+6Sd%alee&b=f)ymB)VWXR>LwfX*2sE8uANXiC%j61z_tFav2l#sT^F@9 z*Xt4vP5ZgDB&YM#YZR%S&n&9S-amrM=bK7OtgSzL#sGP_?8}3Nn~bkBD*xKUE^JJKD`%4Fw*fz`mvElWt zv;myc98$tH7nTB1oj%-<$R9n9NLD}V{{xzR`p;ka)m_ZVV>7U|l%^IW5(#iWPBJ+< zak4J2GsNXz-QLb)zA`@9p!jj|Q38Gt(eh~9!I{gFGbC>-s-E_RT&L*wJKTKMDDbb~ zs+K;M*@K`ZQYE=K_IDX*^QHoiKl6>LlbPdVTp@&#H??9nV#Na4k;;Ib#-(Jua&vRD z+Os&X=vr#FQ#L>lfBbaU z_PFmnGc=qniM^R!V8Quz536r%_#kK|j0^wkDOnAh>RDbb*aG50b30b~ZWT6wKRT(( z%6?sgjtwEyN&A|BKMTI?W2}K(iYv<#3!mhD&ZCCB}f}WoTvfn?w82>J)3l+J!mAH@e+t%=wfYR`;yq)7yCMC3cSmJho>) z)-NJ?{w_1Qr{rlq~-dWTbs z)fa0V3zLMBU>7OMNSyYbO!`W`8&*?iiUE0K;*b8F*l)%v_Y>V1sL*BYMK}xIvCS0Q zndt8Dr~bMqUTNw?4n8WGD7oPDUP%0E32uG0muDiK8TV;X?5+ejHzYzhrj@{K7jum3 z@pgjN!s)^j&8nSiQjMSa`fR6{t(Kz2@ajmB0nKPpxAY)i?oFy?6fVq66=jEOlf3cG zHY4mWM(DTiX|3I5vKu(~RBQGW%my%_kG>fxP&9PCvY?7-+dY8m#-RQlm% z^b3zxEEI~m$%?Ak=gUTtIK3{;ZzSnU3#*rz4%h}$5Ksq8kH@^s)m9FD6aEVQ?UkGc zRX^+X8TQRFFdQMr{C;|e;XyImz5UpCKYnO}ux2MD3cTQyr*U8RxwnDlaDFI%j&?qDYk`L2i`atz5^FAa zM}{lq2hn>1cjUmB(m2@h9~HAaLESZU57hG1Kp@a_9OQQyujZOe!|ItQ=7M51E zoW_n|HhbQ^y!Z4Tnse5{cO895f*Tq1RlPoGIBid#dS6gz4PNq~mrw20JrwU!p1vjl-hh3vAd?$G?lx;4D z*)A3Zaf_USlaHJy9bN5hV49MMe%?hAmp!XXO1t1>ex4PykOS}LeY_4nRtyhH*nnU` z+enUF%4k+~jIFlmJg)J2fk0`Q_9df0fBcJsS8-b{Q*1-}FPtzx!E7{&dZyvW5@o>o z5^`I9=cSfyL}ZTRdUo*++aImk4+`g8p?2p$c*y(lIJq?EwjQo&OcPMB(yIuyv)muE zIp3(TDWT9_k(nL2SUNW5q(yARM>$U0e|J?2t4!sPg)l_={RGth%oT@?xiG<7oT4XQ z!(947=w$2$-yCEW?ZBdAV=AUP`_~inEzUSJ=CnwvHH{)aT-O{#}97kpx56KG9 zz3x8yU?yr@+E^zu*HbOi@?t3jpE0aI*k_GZS{uJq7CelIee!H5o7iKn`5l%$j;Bb^ zHEcrDgj(4b-5$`I?+l)dE_K(b*mjf!r&eUhtY0h{xtdym>tE@09cXl<+FovaGQwTK zUTY=55xL1t5Ol_%fFE=fxuY8@@{jFX*h@im3LDybN~LZrt*Ix6yYdXRVCTKTSQSwZ6KTCEX~%?;9o9%c!RCxcI`vy8G=i`5YW;1n$6&Q5*0pl%A&>=pmOM@ z2?dWo%ej9clg`2iZ<~RZTRM*ZQ;%&9nmS+$kq*G7zX(@b-$tf@24%o##buen1gI4> zz-Il{*+Bd<0DaCJg;NEGyrFTlS$O~O(tTh2g&n8wB-v&T4(rg7RcLrHIs&?!vt zUIUFP?a;MRv)E?_ZN<{K=|ZP+Wx8yF9?JEp!XBy>#`on2W3^Ri+@8F@llT<GoD; z+LrUItH)L9xJiAbNz8{lAqgR`k_e^XjG9M?ERJEj%0hOS?faNz+PHH__UATKyPy)a zXI$D1{BxlJcSOuCIm9`1Vmp{xo4p0es zsl`~~WvTf{u31m^N@o6t--`@znz)w2zgl3J~kWZj4&Mr##b z;7m%s(RbTlpYL)#$zQLemySD}0g7(iLD@&Vt=ugSt>tYL;U@YY9hTFC0yW*H&0-5G z&Q!6r%e5OatuCg0iIq@0%{rGS$U<`Xlw-H?pl4{^Yg zqm*0FFmId)#Sgbc;?Sl56_GBo;Ov-$%0q4%S-!N1mak1MZtfc)>hmAu-&Pbepkj z7LPn#@&;x?YTx}G8HVQgl#MjsG0vlaY&|KCEiZO+(BAaS8j$QesHTU2&F72rR zX8L4UYln%CcK2?l@NTJnUGH9fxbW1Aw@Y5BTWer^MxuN97$1hK(qjc(vdC- zyaroh%vo!;E9x|vZzmsJYhU71xQ|^VcGz^xeX!F5J^)JW*tu9zfGUjQ3NW!pZ=D(I zdgn82T&aae1w%!`!9)44T$`RN16D)cN`dC(@nN^rk@O-vPP%?eDZu%?i zXfK^npaW#0#09(A1=HzmLlL`K{dtkF9w|ekAda1or)vHSb%t$y0P$|qR|5Gh{+#aJ zDF+Urv#7pYTzEb@Myy|B$mr}D{z?Sq>`v-4;@DRcifSU;d+ZYup(M3vuipvf$k4`W7`lnJg{Qtp<(ybz0_5Pvm||Ls8Iwj?j-f6I4b+eXD?PAFW<>DkhJnqXa*)={CeLKJr*b0=moVFw zkp|G+S3hg4wXWTaN7pBuz(J_j2*$0@dchPBQ5*thZ}q2SE8MH*G#~%;Du8m0>oI-% z2E!~V#uTsRiW&DwWZ`Ep+t|Y4d~Y(JS9o)*-CkoJ5o0HFy{<8pcom6WRiFHgN0t?8 zMbjo25qcC?84m>R72t90{JAM>sY@SfxbgCV6*R*y4jn`@}^o`9vi}(6)ac3qZ zQrp}wiQ9=c&%xT&>6J&`9vR}BXVjo`QAM22SYCGZsEXj1B6AN4B__?hXfrntRin^| zq-PpgR_n|e`%f||Z2(Wwx9Vp9sUq)P{Bvy1zaWlz!Y+U^c>?%lx1nh08Cw%g7@s{<<* zEf-^#_g#7qy7+~N%=RBUoU*J;xE(rGg<$jz0gLNY$J;lkvw1%Mpvi_MMBAiwq{6Yh zqLvS=pW{~sLR9&$RX$m}=_M0i&PzF6ZV}_av_I*KR)(7|>MGcOa#0|b6=&$$PT{tB zkOgsF*LpTcHhAJ|wm5z8;)Ey7B0E@JrEp`dpoS0d3cYa##y$7`S6Xwb_qK=vX1;;PzzGDQh%`^~tHb4^O!@_WLSjp0ldhnvcg)-6xOcCv?@2#h|Zp zc?1^@opp`uhQ_R*@VUKVc|BBv(N7sm1i#+NZ~Jq(f@V6`!%1DyU{UqGit(xq0lrb# zU}#?QD9S|pd}hWm}lEJ;=hb&V{(=URl8VdL7 z)z)H#iEaGYa}vRHF?nKB=Yp=s_eXH-T7@2XmH?qjBI$Xw^2^dA&{BE+p#jAtolK4A z(c|EvV`_RWCLen#l4N=H%HttNVim3x`lS7yUH;@s^Gj2b6i^OgN#T?gd+FA2GUp1X zX!3GuIgxn-CoC?#aWLg%Nsbp+^d&#e0!5M4?n}Qf7Ya6QWb?Q}NI(r^g9wwD=;XZZ z!*N`0f4~{?0>^vRI&8Ve9nECy!(-{E$*?Xo&Egt!KQ=Ebp_mWcjC!|V9GE{97u?Ve ze`ph|k#~y=r$)Z3=7=Mr73NQZyEVYOOE`kaSKpX1YN&|f)|`LbD{}xB39+#dR&d!a ztbU4u1##c|sEP(Uut)a@CF(vwwuJnX5RJ;Y+$PK&6-(p>pF z?&W21(Q!04qG3(j8q~~6&hL{CuzlhYorTxAykIjZ7gyES>=Dh8aNFi8BnlyV%5-fA z(Q#d?2p&UkpsjDc9Fz4X8JiS>LVdLm9-Z}0f9NRthRA6j8>UI|d1g-ndxBpGxBlwd z+DW1-ON}Uz3H=?qPis-@*?Xa-OQ`hAB2#;HdnN)WBNE1%SW@XVm)S(`jjWN>L!BNQ zC;FN!1?EeWf~`{Zg}V1`lP@-@Z@JD%MJ6;p(tq@8xmd=?Yy0m81U8=4b#_Kr zm3bd4Bq2u?yMXpfY_CaS{}E!&*f6uKaVp4u=z}rfxYPl!Oa5STM{5Kwv&SmW*%!*A2SAR;GpUWO9=f{K3zxV(%^>+Gs$l@znxe4W$M?X**(?t|ODvkUhkvH$hb9{Suhi&}24a;1M5= zS>YN1bAg~-y<~h_FHUB;cO=$zA|ItZWhsR^K8N?U(z8=KoL{KLGnx*gB8oH1#8F|P zQ38R~d3A9daK(i?`}%%;m9dpG6E@S9a1v9wi<+2`{5Czon&mUIK%n8(vg8!>3^Yc= zmHoNDPwS3mnQ3@6s+fJhQ!{J6#MaaAwL>koYfD6h?-F@EPJt2vt$C?!EXUd}NkMj> zzvtba2P8)=I7GvOStn5k%iJw3H(?9WA}f>ACjNn5iEaQnPT+9dUX#Nx zXo6xk2M#DRR~ks-)dOex$iG@!i-h>#jk^yEPFP_)P>`M%5B{>=@G()Ap0Ct)JIC*U z@8OsvIUffwu_j@-q3(eEBF+}v)^(%1%e!q#rF3*L5im0VNRV)P`eN=L+g;c0hxNcQ zWFhO&ZEuNbbsKxBh;^b{YtHzUmDPE`_I6p3G9rQ1OL9#ckH)J0P;Y`D%aPnCvBX#Q zNWvcbkmBWT6}YbMe|ZpQ4YyLjfBegBA*LqmP_eVkcRY^BBJ?EB9Vw~Q%D)|cl> zxAGG!Ciu)mF1{C72%luu=)JQE?@M0qW4$doqT4wfdzTaGI<9E7Hwkb3RL1*Lt%qNUURB|z($BB97i#5pkc%k_pJiG^ zh-Q(SWp8SEeP7z-(a<<6mty}tggEzT-q(l)8t#W(4{kvQd zaN#t|8;{XTHQJl{9w^<~imB@RfdA;HZWMI;eDA_gwDWgGV>W7lxe#Av^%4mBF?D+l zNe*RrwUbp+e7;~wMW}}*cy5?~L*exLWs4bu29nWf%3u|{kNtg`dtL0I!NDG^w!qOf z*|6RlbdDOXo&9eHO)L@+0f}gnFS4Mv7dhl7lZ$2~%|{0Zi61%4*8O+2Cz48lO7twt zbpci6bHMAKldO@B3C3$E<$6i!e5I54=&?v%lXY(1BQ;O|s_Ru+jKNqANNZEFsQ{_sfznbhrRLRAv= zuP72J_4QF2`q z{&NR{HD<$=g;7RhH<*c5U#w|JLP##v>Gv5|GAiRPrCl1cc#=kChMFX%8eOPzma$_9 zqY<5JLs^Z!e$yJX&{nl#m>8lH5i5RdIw@gBaZ8yvbmZdvqAVtA@1Cp#{}|QEnEI&h zh1YY{UVW_VZ23${3F&L;3Nc)ll(16Xx_Q%n{L1rctI|}JZY|Q&SH|J9Ax+^$I;9C4~r!Yfpen!OlNOzB#NzQf!{`mm+5a#2EAwm;sj zA0snnrrVVR<6AR>u>#nc+saI0G^T;3W;l91P^2Egu%S#Tww$Ju%Ct?Q>dxQ3yL_=+UrnI?L2}o@=X_yY-bvGUiB6b83-B zanw$+ze4r#tc0R(AUj|$nYL6Ti&(x}bhp`b*cpYD7C|T$*&Fy~lB#9Rw5jFjmP`xu;XfUcY13NktFjR?Z+1 zZueL4n9r0F9gfEhLah|eUy?|#Pt%RS1rKLxI6|TtR;;!Lq?n|t7>!RZ6NJtS`Ls<= zprXTD{8Q6+5YXMr$LB<8Z8kUAKh{YPH0)k-wiS^|or!Ii4io6#`^nl@Vy*IacsGXB z$c*abk*oFin$$SM;52Ew9R(9eyRk2SY*UfIJQH+)<~tl9dElTjq^Y4qZ6O}vxM**OX4mzEZpWOil-p_s_emC+B%2vQ3SDyY z+1IY;;t@0&;mDcQYZ;6tj1JL6f|sF=u$sd6L{i=!GBt3JIvAB)+U7JfkcY$^aIzsTx4@%`GLWZr3=b0VuDM2YB>1hX5qqPlttx@J)0gA zv{OD6)vcH+kwbn5Co6LE9B-e&LDEBk7zwA`0h|>;vP^GlRlBO<#&#*k04~Ols&!j5 z#=8)PniiRD+ya~oqaKNj{^rL$EA-(zvF_eoCodL?i=VAjm3KzIK3VoVfvv(&YPOj{ z56kn51NKPdAznqo`hN76P7h8pWrz0T2Hiuo^=&J@(qNcG9eN^G-9A!a*0DYS4UI4B z2rfH~FchTU16|u!S2A}PB#3}rhHZ7NTcX80O3D&)%@pwqeSAK3FqYp&5NdvQnjsWt zjyiHfkyH_?(s7`KX)n^_{fvkfp>goEUrZeg&MAfJFALZs^MwA!?8%jL@p}JyRbU=! zLU}#imPMrFeQb?#uR0m86|>|sfeaU;(oVAI!lO7HIW29&qk%~$C_bUD3pz4NSr5k{ z!+1B$@Kcal{3x8G*9ksVLIQhUbTiQ{#4H)%Qc$_F#+2jxW|`#hCfoZ9QC09~E@2PQ zlPQe$p0a%Z#m-cRQ|}O5ppsto&5>WG$wa4sV`HY2}}@)4xGmFibnN4>$TvnUA5Oky5E( z=CHNvFo|V2sua!MhuW|9Oam(e;%DJs*D^f;%gR-BL;wKbULnyd4ljio#eU1Auq)3u z9=i`eb(T_{ujb})7O}{WnjC`vwEk}O&B9$t?XgN**Kw8S$$$ukoKOfAqmrcR( zDu9UdjlVa_{&rJ8p6>I#l#bMGJXXb28Jkn>M8s(b9&q?r`B6pc2hF||pNUgb&fz=5Jn`Xm177wrdV<)Q9=o#$xc8}$)O(jSX!iY$TgUt%K* zWfMSxffZDk!&pp0>@?{q=itN(=Q#fMCPH(icWI}f&oMZD-)`!&<*eG;ySAm+)jH6s zn`N(9(h(^cjcrOlF7e6jGphYgJ2^Rf)uctZ+lVG41V!0;d*SmXLVwY z+Lgbcl@BG*BCkRGwoUWdis5N}2cMNExc^mZMY@XlMa8$OKDqm*v$OVO* zvKMU}E!fX^=GJN7XWtiWoOs^7!hj&|YA?6UYLoD4b8HJD<{LcPDO+~fd|C}kO2e#^ z^rBZPa>-pm3QmB%Cx-MVn|-R$>T--Vd%_MvSPdmO!B{~1X4(>dEjWC2GQot}DSpUO zOnywV)zR74?AUl!7WUb!DI}lcC~x+cxnxfc>-mks`b>HgPf8uV{FDe$kvjp%K3ET1 z8@X71uq7frbYb{Tc~U-@GF1jh$hM>Id)K)*k8G0qmF1U(4p&Xc@P0IaF|le7>vW-! z4|QLh695@gv?V*p-pajrlU^I+4H$9MA?FrlGD~v&^Ru&AS}3X%c$n8N-8YjRSr&2= zU=_bPO3ev??_czd@?J8`HHw~j*cDh7GW8VqYEr}3`^Z+FTTCo0kEht}BuL6Uj2}}1 zFioL)l47P9lDkYivP22`%iA4IyEQ<)I|DFWWxJ!}{ZPGp5_l#phAL6ZB;skKO`YPL z^w{hi7rRFOr{!s@%!^xt$tO|^VhF3@z2r5nOHZ~MHl{sM1#s)M$sBLsb1~GbrtS>I zo{vp_s<^++u!guy{bkH??C9#;4VKXBSG?Yjy?%diA>{_jJS&fa18jiBFw=?U>Ti6v znyX0H>&JJb>p3zTH3{l9&kjC+{_L|?cG7)DbN5HH`Um&^!RY>*s~yqat~4;5(JJK@ z7B8>~L_HrHnVR`(srXO3*?;A2zY9{ergd=Ra6E4hpH-U$8&4iO(dMH9{d;&<^ze%N z|0_2JnnB3vWf=(1-n=U^cOC_b0B}VMMo?deUuls3HxK)tIk76~^C_hB^;Tyt34{Ri zou`+>i24@eCF_+ohaZ|z{yObRPx`Z4N^*gM@K@?4Dsh8XWAFcBL5A_r9aRZ8`}1?> z;_e@u;dQU<-}pJG{BPEPOM`0MnqfRuO{t|+*8vUqd%gevu&@+9x_-u-UL&W#-^jzs zq$L;gjOX9apC9TPa{saJYPbvo@EsCF8=Sz$^@<~*u?3?VgszB zJg~zs{zRQOnQ}+OknF#ak1G}C+{o+YlmMlK`P<*VedB*caV0zVUn$BA%{SP%W$v7s zj*d=aW9~YkRTE#&Pwx0vSogm~@WauEH>$qhHdS^NuA){j^vg2vM^DqQh4lGWcPDwG z6dTV*;krEO-{t*v6`vfSK{3uT-s1ij!9Ta%{~|nBSh~vNqhIVC1DN23FOo8BJVQaA zUf%A!eBY9d|32?)kUzbAG>?%f-w>o)kp_ zL9rSppVa#7a;2vB*U1CEVJJvdHmCMHSNh4{rmp$>v)Wcqo9SW2UG1y=gJu60)A&z* z{Nn=9A=s+F%jkuT1uULvsL6@DXA@=EmAMALFUyaH=1&yC#}Yj@q!*xb_o5OLDb(BOF~ zc{Pdr-$-8x^-~TGj@$WGN}(pznuT<-Pw)Ic7;$>pk)3?EJn^1i;Nl-s-;Dg4JpPdI zI~Z&FZp?lfgYg%{rNg&rd~y~tv~cJ?-Q^N^$TP>{qfP`W;vk7tiSIsKZ0`}ZsjKRv zUvK;twlB<@C(FsrzDy99;jFN4S1rJpJjKVf5=_+APQTy%7~x)M3z6?#*?)v{`83z$ z0Z#9Vo1qWZ)O`ErP-C^YAgxb&<{Ei&I4n+F(Bk7Kr`gqE`(jy!UWmue1rOU+ zFo;N#2vYf}QXd)*b~msD=Ek+=6*WvQDyjKW5nkbOKcNq_Vo^Nvs@k-m8$0}S7QmmH z%rH8ic`p#JTYeS1YM^;MumI~h?}+qQE_0=~h@Qe+!jXh$+wVm36Jbmy&d0VChcVHD z4-s(+uP>gf&SlUB9k)0`gUnbmF`2na8nI*JCKA}qqR~Ll*Cm*VEU`>q6G$FIY>}B% zXkF8xirl4x=TIo3t0!oncqOwrMwo6dQL}6)rr6lyd@~RPv+S##FXGiAcCw{gVRAHm zzY`b09^H3n$;6}-ij8XV68pHbG-xNAi(*s&ItwVlW14nRLmGM}2b2)+9%2DKj0<3UmgblQ zE$d{?#$CvcflVYg2pl=btDHRC@f8tnYj0}{U@`6`+30~w61YiP7+D&Yv1$#UYY&;0 z@Ep)ij~l-Es+}5?GiRn7>)8~fS0vDie3x{Fed4a2v1j}`rD^P%6zQRGGKB68yT@`B zyM?n?gScM%&a1gOhmE!~LPmx{%}=^sL>`XM5L2=BV?5Sv!ESKoI^Bwj0M56ca zFg&Dxt^b3q`d7nxRmA=wR$uUBSyG|9^UgXgiso#U=)IwXmb7=Xl$YfONpLop`|XKT z2P$%uZ#gWhRMavH$)(o?>?m<=!j22?PY=ILVQI)Y(WB;Mv&b`bG(mdorIW6tKrs}+ z#38wnG#AImay<3juajIe6kAphI@QO&Ox&Lr^U*n|CJ8@%kQ>pzU=ah^pu>z0zB`le7CJ`d?U z2{0s)R4zOi%q(wgZ_|VYF_Ai9;&NJ zkFnl9JU@v?iC2nc?Myg$(-laqZRW`t?%%g-raMV8Q&@ltld$jjcH` zI$13|hFzQC=H=!bVreZ&S@um2LN9>jBdh!X%hJmaE$PtfXp#kCQd3?m+OmTE1QOcW zWsawI1thbai!S>(oc46qO4lxfQXXdn;pR2`JXXwi<__r!?=dE)j zG@CquX>8}geAoH)>^xbX4ZYQN`6904&T^UR|1S7KtLPei2*#HuBI+6xX6M!1`92%` z3(k*Tsu~Q(Zwb>7#(FWmGNY|AmNJUdByn7iO-EQ_mv%132~b%eaq-M#aKU3Xk~B&T zznV*F%0p87*h2X(s^Z%JqDcNO#KgEyL6Bg4$e9Gl_v~wsVw`!VDpmg@y4HtV(`hKA zkn-9`X7n;-q4IXV92mDNGx^!AXqLpK9ZOUomK!GW4Vk6qOP^ItxhxhL_`~C_AREU zlVvPjIG|zKgYHeI#)PUg+jAGm#T?v2MYBwJJ9E7-Dv5tQFa1cEO`0WLY2)W?*Gxr| z1f^j1dUtSNHj|Q(9_kR)pb8{yj~V0`|G7+)aY-va{#ay7pdQlc8GXFH9+a4#)}1tQ!1h|Z<>d#S#Vf1-1I?> z-+P=}VAgt?@Z93)Q{zW!gR|kgc3#j{&A#!QY=x{YQNDGq^<+3@ncH$IiF6vA?@!#f zCsqP#lkZX_gPhuqUr69gCTP?QvtBdir?Nx(>}Xs+nF?7x3o*L&7V{TlUvFgN!{z#w z0FY}e=`G|*MqLWZtX;J!l^ZDEfkGnk@Is=$NzIM?%{%?i%fl2t?D!`6cxQ@57O6$9 z*%!N_e|e08o{)vo@LcQB_{;3hmwEczU^FFhHSF|9ydIaiHfl?s8E+d74iE{ZH$d*w z6CI1|3U{4E8Kd2KzCj~PQ~q?{)m=>TV*wXxTJ-XYLyan%qA;ZJ=}?yiUzjgRv2*

8*i{DX;H=|T;m?apKNfQ;ooI@>7U;qcyAHh`c&k5gKH^>KF4%Oj z$Rm(gh^iFH2OR21baKvb%$EIkB4U1Jl;veRXt7!W&!I3CEdbRR?s}X3t;AL&q_1Uv)%@VJlvqVGK2Zg zp>!CAPnP4-o(lzi_m`T?4_CYoKl1g$+tgIJ$bSqx{|$2WDI|*Jd;%k|18M2V(ETtQ zivNj^X5s2moj^frw@Atq$^r9->t5t$&dX!Ee<#?c%0n`@k0$LgU&>)edg0?}OEyI{Me=EaeC=amSwN>C*ghSRK`df5GHXbaD7KUFG zr&UKEh`Y2BtJn9;|3CR^sMy5H)fH@1wx>wyLkCEdQuxyw|M9VY4itTEVoJh#hyq$6 zH%AlceljL+zatjpcUOCL{`uSgN5vn!+QRD?fNP)ad?o&k8lRh3_*l8_j3yUGfSJMQ z-wEpZnUG(hnra`3b7(bRm8_2k`5L+;CU8HgU)oOqe*A#$Op`Hrf7K+w>Zh-!Jm7C( zd5-*x{Mmub)UxZyPO;GbAZ;DF`~&o^t^|Vj@(#10z>anm|IL7(3Vi=y^?u;+&sW1Z zuRC07FyLdc@^nqdXEm22n>s5?_@4ZSulz18SMOzoOPgDY`}F+3!pzOI%1(-=U-gRZH(|7Gr9U4rb&QUN_ne01d7 z{~hmtr|UNg@jQ|S7QPEm#CPNKvvmC=Z2$TeJi8t4ZsT5thWWE?2)c&dH-77i8vMDh zY1%h-)lOYqO5vx%MiM$D7Hct2`GL}@V7JzHakG{G8cWzhmK(?D`b(cYcKCxz$2q4dcGWyqc3jj?oR=XpTADn3}Vf1&N^)@&80jSjC=e;O%qRs4Vck~e=QvUBcJg}j8$|66WF41COV0|OA-Aq3oEbgrZpZZ=I*g4p`nr<=ce8~)#LL|5qpLF8OyipgWs?aELb z*IGEw2IBKPFD!CFns#}dBQG)52XJ}z5#DR-`LRsENLls*#q~Q9z_J$~zYqFjZ}@+P z?2lf}Jb3z?ce(!3%Y)~#i$PDuMZR%b90wJLPz5L^99%CE;(1^-+gvh2W6aclUrO z^3MH!5+Lj;Z;R9XD>mnYJTKe{$1NXm+s1=w@IG&v#Yyk;d&H0PRx(o$ZmxN6GiDzrHFa ze_}HJ`Qb9TZ|_7X6g1se&*L9foj`r!u{+F#Y8Dzj)!BQii=35&ZoC;%Ns{N$9o_6- zgnINQ1lr;7aM%;GB+!R-jc5h;^wf#v5Gf3IR*-rmlue3OOrdlWmC~?JZjF5OM1M)J z8cY)Q>W|dsKm4!16$wu!(P>rzp;gzJO@cH-tLrEP=0$YR$27RPtX`~cqj^Hk5T$+2 zXq3*fi|e!QI$Le#eiS@?ZUY1DimW``tKOW@8nCC=`Drb<4{^CUgO-TDglON51G&Ps zLKuETybK(o>9P#6Ya#E2Luj-;2B76`l}gjqc@C=`#l1Fo zk80PAr!nZ1B~oq+%2nfY<&C!Lnf%7O*MwBg%Kb4h5x-VOK*i#tHANq=`Ccnh&C2}y z^98n4c3VVv}Q zNh8EvlXNhDTzNHhaP#Z(Qy&40q$Oa=l59}R_PtKr4)Lan5j#FVU+V7MeMRAvWt8*T zha>0DOmY7kWwU)rH75Az?1*ypV11NYaihAr$S83;zFt?mvqmI1AyVlRLz#lPU}kFR z7Pph??B+NmH|O<4MOIq#WQ~=@=n6GF`@*o^?$##NJr)=ZTFugi059p8v@a5}xpY%; z+B)AOSeKYn?VNv1cs8n4FJ36D5yddY())Ato!$4YWMlTpIWVR97XDjEm~H+oR(i4#7E_2G(o zyNR5Y<6fc4;@yp+`~=Elx6T(5g`8(;rgTFauxjcOsdvk-GxtL{IVZE+#B7JK_O&a) zHE^aQ8VREI)2R{{EQ|H=-QE!sox59u4GJX?hSiO2y6(9sO^Rv;a*YPHEN;pQYFT=u zy$8WB-TO||ISGUBhoK=M_w9YVKOpqGXaDOw#?)%MnJfh|6)@eAB!iyoHh3I&*rdLo z&ndMVW8B!CU_wSMH$405N4bQIV#BLm(owUL(~bm>xE6&8`MUjBgkwsfxV;8;LbC-t zAIo0PkyY_2l<&DE)Uf`v(WT<_OM-$|FUO_dKxvkg6A1xkTJbMF4DyD$3bldr$;gf+z76q?VMe9+N_jGk*T_=Gp z-Ww5Zm);Bei4Pq^?3YhS>^)x~3fD^9Zv`7!;M#*trce)YO;eDV4fTX>fSjaBuP1wN zFxk&4WB$5*2i&qQvMnem?ahlfXSZIR9<36uUrbMr2?)x%W^vM8%ZPciERyp|L)N8+ znRtf5@-54R(?&(XsFU#pt!+ z8Okfog_Xk&oB!lL6^l>1R(5q0`GXZ8HQRt@S z?oJb(g)*PG9g&qKT#1|QbzS3~DfKOC$jD_>3L58q{v8GpM&y~Re(KMjoXQ0G!JTh` zD2tM?Rbaxcq8y;_CZ}cg*Vf*ODG2DCd#wkn9YF$yZw&HWj&7vNFk_T&4S``zR4Tc$ zaoYytn!;S%yXz9v%pcTLlkAsZOsB)V7c@jdqt@!M+{pq1B8yka7d{@*0d`OvoXMW} z@5je>h#D2%AfYcMsw1!2+L1%!)Xyx^n3z;*gIu(>F42E*IOM%hf2Z|g6s zBl>WuH&1L@kh5~1iciZ**tO54WHoo~QU1ELe|NX1cT5L?z7EuL7=idO6|1$ZPW@69 zI#pPXH?i(l`((|W81t7U;0kalRO(rC%-cbT^I>a$R?OSU#Z;mL9f#h_hLz+pBgLZi zvU_KpCq3sIl=scao{o7%hy-IC7P4@g>!2j*?IxgNXs%lyOVgWn=xYsKUCUuyLg~5@r(0ryIFHRLT?-4RJC%sBKT&EVG2(&kr2+(sujm zsqpS|_p9l*bLoQI@TE?I(aGR#xxtUSmAtM@3t5LEfqaJ}2-&EN5;AuCsyrD`ts@SI zX5wkeN2kuMILn*0vlcZx5e>3v*O4)$y>a_6w?EhljNpo%1WP%P80-Av5_HJ;0G2xq z4RY*L*H4*HH&wTB;xc(a;*&@uN|5{Yq*tZ*4UHt%eUgfeA#is9D6%Y24fd{5TZZRT z_uz5K+X>X8Z5XD+iG`7l?Udl<`;VBWh;2U=5!hwxlYzjj3sShJDWkgp-Gno(Z7QehpG!&reM%nOMSGEW>6~ zxxw1yi|X#MDh0u_s!Q+By|D;i?$dZB2M7-p7J#Anv9YqzVoPaA3bN;n&2IVB5xnxC z{!nT1qWu@c+Z18s52-98>I}D222F~YXIvlczLQ*EJ&L97Z$c@-fG%)P4g`lSz!; z$9^*VNfPi7t^6s*OBYkG=xn*}=T;Mmo6-xy!3Aauk4`2B2%zp>4MjLbPhwZ-xjR_I zepvYRT%dQ9t3|-G;IdO#|0^Bs-oE|vwYSpNMY|e)yVBN*O+ic_IFPcs7h+`#W zlCusB^p&M>5wYxan#PhLoueN5cdVzC7{{uLJ^ZYwAIlRby! zMg=(E<$8Md+JY2^Zltz-56w-=g$|L)$p$;Wks2Y1F-PU^){Kns)iAsz$T_-&=zZZx z!8O1Q6tIi@+8R-@qa2On5-9I9s$^4RxH8tqEPbg#CUd9s&q0YY(aOA)9@3JfNAktG zJRcT!0Ed(%bSd<>Zyl4bFC;24nJ+ft(U8a8)N<()47OZ$v##GcB3;JoD(})I(2sbk zp_Dbg!1S#_v)I_kG-8I^p`xY?hF_!g{N`G%$||R4bxC(Q>|TrT+fl7@&!mTXETHRut(&Kl ze%nSsB&|DPKP4S~IPCj6+vGV7oje`jTRuue z1*+yx9_tv#>6Kj8UC6KYups)WlMcq7+ryi9Mdt>ij8eJ9?pm%A4+RJ~DU$+#3BSfg z?8FwBi}h_|ASaJ4#e`C#7i9Y3lUnjN$l!4HTo;(s;CnDNbz;6j*yZ}=au@>tiZI_S2LM&A&;KYad7|G&1{s;ek+;OR#qnT6!{^4DIdftEgRu&Bj+7x#y;cMN| zo5x%#;T@`9UW;(;r&O#Rj%%(zS|9Pj^2_G)Ik=a4x}jl3S$)*FY<_l=*@AC|P5B<3 z#pU%kNpK>MG)nYBUmbUo5Cq}_Z!ucOJTpd`QpoXAZniR@MRI(mbqTrU4bDc#&obr| zKbP2}X%`zu6?NjKjy-Ing|1Kn}#8M zos}G<>Vri5c*@^jK@Z8^#Et`9u8dKK{EEy)IWl#4AHe;@Xm*^AiUtYVV|H4VHFl*S zHDhyHBwMeQd9Uh4rqsa6Q$t$_jb!{C5?fct-n`S#diCeq8efgTwRf~PMheC?G^sa| znJ$?RszyNkth$ly{%9e$4xQl@OerMTJTHDzXx*r9G? z(J4LAR(?gmf6n)-Q~2#SR~ZJ;^FJ!2QTsp=pKyZ3Q24n!l4-T zYVz;Kf|hg3s%-XElqQRExyd<98~gjm_D1LniW(>MpPcUn@?#P2N>Vya_un9A6G+U1 zydCKrEi6$k(Al6HJL@=4No`4r?$P-2TFux+ifL@6UOTzH&`e}f@S0CPGFeu$-j~w+ zj%>{iBmgpYsKnU)qFKc9c~4$^Km1#0(s<^IybM#<^!cilvD$G7-x!roseLL7XMv)F zyj9oR2T(MxS>_3qv3q4H5BI=~V~jC;Cp78^3L>X9>o}js;K1)-A6joxc?ftv!Nylv zAxU93HC^CE+pZhYPx7W-Dxa}i4|l}7${wG%*BOS_%X+*f0qMd#6d9lMei-TS@I{Sx zud(#6f3-HBGGkz*AWXSA+&U&|iZ=dTiHD=TN%o6v$~Hr{{MI*DwHHDWE4?$j=fV> z_Rdbmv1J@`Y$;{SIN5t|$DWnUgJT_gmF?IZ`*1(Lzn}8E_xrg2oyWn)=l$B_`Fg!m z#`0=YtBT@!dn)>?Goi1OQp?&Tc|wTv1sUwe=v6*{Jgk}&n&)?FV4Z5^*<|_|3BrZ z{}?=RP262uS(~L!P0d=(qEbN<*3sAVRLt+qxKv~P`kd}{+5aB7@nnx3tsIkx_FRI9 z3_ar>F}TT;U)x+4fICT-O8i^BM8FwA?~`NPDkOH)-{m8cSpPZ^RRM|nW~2J<_~(<7 ztATqb1d}OS6tffTy1t`}-;_wt|eZ7kDlXvY4^Y3|_ zhu`l~t&L`BRldnH9@`!K*cGQYap*n*+x@*oUdUD7SFZ-PdcA&9=)A)_e-d}w}?0`KU2K5x?!%7DX75Rd<%+a!)S8-I`G&U>P&Cfguq}Et1!X@slw0|T*zUbk#}EUo&=>nU04DR5(e)` zKg=q*gf)O^$-@RB>i6bj{k*DILT+41K`rHHKLX!n`hG8?{x*eGZ8z`m3yDV zVy*kBkE}<^l)>w_I6;J|8<3t#i+^&64&Dvp|tSf$01Mh82N0+N}4Qt z^R*pB%zw2#okXdLVzAY)0rEl3E-Ovol z?b$$|#(}*GM-QOrJGvic<4cZiI6_@mHZ@JpE?;b8!x?kVZwc-bU2w?j-?`#5dK)N# zx>b~&E9GC>oyn*suHY+1A1;tg=1JD(3ya4nJ5t+Er^W&-dVhgJJRF?8W9f&U1?n)& zVlRC~c0*Ad8`1Jnxt1~h@=b#5Tk`#soquy6hnL9`84s+PQjZu;*B;XnI4wQVsFFIl z(Vx$9wAkCB8cdTuHh9`?K|^nF=O#>+YI7IDE8*Y$+apM7X8o!h^-`dVI=4rBay4=M zlFfV#@w=t!fv3;Sp|m1OZk9_%}<$V_ysxN&0FwRjOMx$mw!rFEYH2dwV?cbo^S!|!(Lk% zG0y9yo~30oZiQ{g@Zx+)u89eG%Xszrq@e?0!?;AM*QR*!gu8LIY>Mu!>ECk#!w zWo;2X?fRY-BEkUYIObkWA05xmZmT&ib4-IxY~^*76@vYNs-NbEb_2G5nFQry$#^_ zIQZ{h3ot8B8Qndo9Fj?YoJqfJUiR>gS;YMWzaCOoL5({%)7q;{xtg2onME^Me!eu# zqf}wL1&ye#wq%HJAli@oNGRC(0`48jlfc)21;C-50YDaNJW1 z6$DCgKgnr8W1}@5aggoHE{NS8K{KoqLLrX3Br`~K*!9;cUta~EW!s4l4%|#3R_EyE zz4+3p8rleH>ifeVC)u~FY1w5)U@l_VHqGzwvemCPrDwW65amr>k`|mM>9)N5?*3ID zy}LlFf!6wT@^2n!Hp&~XYXCuz(P!cMxhnIy*%oQ(m0k{dG$aP`m||Y=g2m-wNp5J2 zyEmA6Xkg=O9kG77Y1u?Iaae3nO8K76Tt^g$%fesqFA1-4bK_78_Ae9+Vf0{#aatPH z&62RMe(ZzW!zX6OeTiU^G!1H}h|6&ZD3Hkx#n5|;tG<4D@2g}Hsv3|HL8b-o3$OUc|9)Ulj(7&L%kI1$4!Dvob_Txg zKgG*7W1o?jUHwo`tB)v#c+IHSu@qA1-ZbeP_x0=!gQ#_i1B0jiED|CYd`~V%a>Grn z;Oy|8fouzng!JH7$_h*q>0QaD9+w>B*o{NPFW+4puBhi(`u4Ot|G+Mz%R`Yugxy9t zmr{05*P*;+WQ0fNryw}5OLtuZ}a%>WdiVTD&bp8YQ{;6La9 zR~+nCG4yG&x<{^XYRo}uaXdE%(ZX>?*86i>i4Wqo?7f3GIcq*Br6^?^6OVQ0$aRib zmzL9@>ia2w@V>X_h0otzN68(ylHm`@bAQ+WAoE^!b1COBWv6eR+*H`)4YCw`l^Ixf z*?JL@vv4D4$-|_uGR~BhUilktYlxVz&Bn@E;0c&&RJFwE7tuj@<#GL+`Kc3<>eB`xrBr%=i_uOp#Us>vy_LN~A44r<E1L-266VJ zGUC`J(O5KeTOPp)PC0xj( zWNAsY)=r+2;Tl9a^jx=3q^7-fa;Ss-@CzVpLo8k&lerp`M(v<_NL%fqnGs??5CRjps&qn zohkYCFT!P@-218TNRa$<^UsEboGK_-v5vK$L0UqMD1OM_8RoD&TvFZ$SzPee19wKs zY9857@=DJTW|tJMb_40fdh1_0(7pOrk=m7?I`N(AiDdFG0uo`XcSG@@f2-6e<7yDZ z$@a)^+#3nfy#^@Se;7^&!wcFN4*F^LFd@6aB_Yg=%#a{SThPy}EL<*2%J6RsZ29>& zduBC-D7h$+a4v%Mr>L*qGi@9%;B&BqgHiRVp*${Wo51~wYC_*1W~$H1pV<5y9elt& z6cSUwFxHkYSpN4(KzmRe?^+^x+lN{1i{GA`Kd#$7J|Ldbk)KX(*{8R}bUn;Sx#gIe zozGs`Czp^_hr8TDW6x9!&rP7ZN$yQg1I8O@)Z zBN>NKrl#HgA*p6SuoEL5bO2PJKUDtVg_5^l_uZU*a2 zPe*iKxQq#}58S=x#}4^fgrwwCKgwfU+BG^UDCVYAM5O;s+okhP?RJDNAy$|OdmKbE z67=F)0e7I-ig zU+L*Itxs^p5-ujk>_~8+tF<#>1j(QA&XtP$wGZ3z%Ze-R7y(F;_?u%ByQk=LHTpxw zv*N>SkvCpwAmKy8XTPq2HnWHUqAF)s*8>JAexiufzdDf|hR5I?z2C<2 z9n>GMn?sl^@VU3IPu=t{I8ppP38yq~gy}({Dq{?yRhMyWCmp>EnMaYl9k^tgr`5mGNG}X5-H}dPwkhu7R1~@;*f!fNHdvsVn~RR0CP!&A^4p%iH_+YmJD=cx=bhjfl8A z;m9{++yu!{%o#DCJt!IPf&X9^$*R6328cMTsHiNrg;UUgVCBJl?u>IaiGF>+8I~aP z+JwWF8(cT2%JO0^T_0tS0U3Ka3RFQ&a|RTG0_H8#N~K!lP!nP^msS37v`w8Z)idfx zV)j9TRi>NjO&?z}AUh3%MMX%QtK?rbrHmHO^Z{l3kSo1`9-Ov5Guw5y%_pk56wl;$ zt8m7tiViOx(polYW@D#M!qg;d!uHy)-HbtsFCt94=fx#9nGallv`HL~QgY?fOL}sR z11G0J*@c)LG;l%Z4Fs4K7sc`uH=~5mTp}@!JsFrdqAP@5=@x`lK&k?8$iL;7g|<-|1ty+tnvqR9L>46 zy3KMZa!sdZrXNbj2I&qSuq6esq$Nl8QT$J}4(cUC_p!WW1mt z)s;HaiKFmuF@;$RHwbfV6?sW>=Fusnk3rADeKz`L-H-e-(Mzts$p{iqUFGwSFNpa- zrZ|sRX?9m(FYmv;!;0>SNks5w9^VQB`VtB4dW`inhBJS*0MUuzTVoWuM5$8`MqHu6;$1`}!g;Q0 zIv4kv{xKkuK3~3k`P|&x3?F##Qtkf7TivSD#eaj!OFq_k*OE=sB=yf(d&x%`2lU#E z9YI`b>-mFnbM3BX=+<>SQlpaVmRB@;(-N10q5A&FofX%Z@9Z?*d4J-*1h%*GKGg=BfYIK1i|) z#qZ#hQEXw|Afc@%e~Ay_C~j4K@_qj2WydAZk<@_p^Gzwn9+PU zi_Gr%YF3k}pcA7)^C;iE;3vkhujdT#xqtU-qlX)&L8W7JJI(Ey2|WWe^rjI56sXf9j@fgnu zEm*rA2ZFagf1$b{POU!BaDMswh~V2yWM}Q#jno)4UT+!Yxyx&Nio;|npd^AJqfeY0 zhNK8#n3NmE=mw`;9Zml5=$yTP5(|@rsgMpJa+hJ5TtBpF^w?|udbOT!cw7X@?R(pJ zJ(R=2->-1)H9qH#r1kiiRUITI7u2z6wuLP+|dzr*l zuM{8z&&i<-$p7IL_>cQ3+XWz$pEc-ofhShU8UoK z?|sq1haVhL7G}qQ5~Sl+VcgiOKZjbD5%=&X4Sp3a0&(IeelKot4WM5j;sw(MW&3X) z;q&88n@J@6=OV#}8{bF%q-6lcpAL5mTN|Xwns&!cNmh!_YzI_Cc){^&+~I^Pelh(5 zvD1#C0=LHA=Hz(!vEb!BHp#DSO`2a&?!PK$@7y_On2(>gjr8iLa;lp^=6L3|EWVST z)AFya@D`^g;_T3-e(%VCfp^Qw;!-TpDuJj6;E(q!)IA9#+juXUjW&7lA7=9m=o)z> z23Vua4mP02UB0X2S7DsTSCz-T#A{k8))!VCZ`71?2s65^exXs8{GC93Q|REz!cT&W z{5UsW1I6MsD%}Iu2zb-tQJjKZ7s+!Icgv&R-K&UL1T?)tD(ZMG8NW^WLi7j66} z(mcl&SAbIelc&tSE}#pn0PtO{xStJKpMqw|?qON+KE64BP_iO^s^-stuQ`c=BG3ui z&g%&=MrAeYvhPJwXZTTKE*8(HDtLMgFm5l1{wsB1MYtguCvcXn@}nIppHUKkRaCiU z|CU3MJXTg!XNZ6620=UD%U zgfN-%sdAn{xy`$E@=U_yCGptAI2dXi$qKGM!Ru5(cFr9F*5kiI?Q=}3{2gx2-B=@U zcPm@p=i}bxH>=RTKMHwKh(3v**=WEfeCvrBHDyeT|L{%af?kT_5c&msGB&15c-n>~ z(GqTy2|PL{*d-r#Qcj>*_84~3Ca`G3!}&@}G<-nH@DchRZ%)!p)`Ro}-%**!=G`Hj zvSg?QRn|pF?+snR2sAaE#EbmDqOHt?`xz!BSAR7^rTbxcTl!DAtjVtYi$W)kL*(}X zNt&hiazEdjLp1A;Go6j|2GaWK9Wi|xW?`i$JFuZ07Uf#9>_q2E;pDBrXW2b>$*(WB zsk7lfJR}S8wvj~b;kywo`0?My%jM|FK2+$r_@aL;%y-;Jj~?Ad+1+N-NcucUNh)X@ z`M+v@jhofy#lE#v8%N$_Hg@*JZ^#=r(24&9lxIemP7IHssejs0@QeAEjTo0gjuZ;{ zehARRqab83Hl`T7nVo5;F2a}h)rh;Ebu6Q>+IFpp>x??$&j?>6WMf83AMO4wof}Lo z%^2*9nsfH&waNFXKN12!eHFXRORHrzs7yL!Lc|t9n~ObpgDN43`8NO%Ou5m#Fz_$N zY?LglN1K~6f!rY|W_hlc;=$NoOApAM&lN^G9By*a2sk^BlD_BX56mtm>9eJ!r6cpa z(SILj`7Am0;qMnKpAMUio>1}e@hy_XntiFROU)lDPmF9&U)bb1=_JS5mKyZvO98F( z`kL!}0s^~qlHrS~gZU+dhqO!!VSP6&vWF^s1CEKwO>Ou0#6Tvj}0MNs- zniV}lOfAZPV1GTfEI9Vr1e%h>y5KKvh8xV4C&l(J=fc731C+UYAQ6N>Ai(K%K9qlX z0(|l|%}JtV{BZ34;1`JHsUW5L-=7Mw_q+ze+vs+^!6CV;y(YHo=+#a*$u-<=_r2kJ zUPdUjiElPN9P&=PV5OC_aY;oZ49#x6^~~6Elo1!Wa1|a8V{*SrUvh!L z_h96ll3k`0*!B%i=R`W))0m^L2&mip_^Ztn633M3N`;AKu1$z8ptQwT5s9{evM-ph zFDwi6ao}0LdX4#5KB#6__olIN@wVIGaiznq?B4R}eDmRB?6K3*U5Y(5DW$sopP&dM zL4uS7E>|6g`i}w@g;&lhy}f6Ru)K`z5RvBI6wuHWP0C1bn~`M>mvzJC8v))ClHZuV zeFBS;{_C&+7x{mT=UhS2$wG%UCI%p}0ma~7y9k(jU7Ukz3GB+#_9M7|P!;Ph_}12z z>_~;I#~*RPGo&@UI%2Sr!>r3(HI%?fM;Z+cFi)39B<2T z8h~*l510mlT9PK@Xas249$E=hoM_RLr=IuW|CdT&4EEKKiR6S(h7&_}6#RyVcXKjcs) z$X>4v>e`&^5LR#(F_4a)c~;h;ukPD5F4C(yce3f5EZFi4WZ9H&$cZozs;2=LUQb?v ztbaxyPC5+s1Ens%hkNyg)q#=zHhK9O(RF+k`Ai)vGQZ3958iNg7_V2k?K$#v5aJ%N z6niWXqd!zmwH+|^*Cx4}+f6jEd8I75YT{Zoj!x%J0XU%p-6#T_gIa?%{I#oV_;}ZS zq*}NF|60%spVG;%5hdhMgL7fx;B*^r!V5nFvM4s8qF~enb@;K1sz8LCyu?GN+}yO>dT_k_ z6iR;SYvsmsx2_h<;GqK5ic~PAkOwsKl}GJeU5^?V|Ef+U1hrS_4mYkXhl~xH*r%mR zMF$zEMOkbQ78Ov}Iy1W1OqRK>j7Q*Wvs)jS<(1nk><$|QYcvYVG|oyX`XNmsGhB(p zieZsO#SJPccQvNg##7Szl@d;Y)}E;o&)tIkzQgH2*t0f*hal7FJ z3}eLQ$1VA~dI1v^eU?D8(MqeDaXnkPrxZXx>esq77b;bTB%n60XdmrRhYiZC)$fU( z0@vLJ4cUyowwWqv(%gg5?`<219PxL>@j6m-j76E|A@ZZpgQF}%Mdg|~$O`JQ)sR&| ze*H0*vKr?_^C+jKHK+A~M`LCYn99{*qb{tu51UQVMA=i#2A86S!D&%!{N%*TQko14 zM1`F??F>#HV=$HOs&1tmjoclE$Gqz^dn=_7E4G8!{9$-2`_kaV(pdcq50N`U`a(|8 zuRmHP6_ZyxyNE)Q?2;pSsD|*@9?~m9tj8X_jnjU05U*2kSgj*cG~oEsgRR_RWRx=9 zy3|9F%~0PKXe(k1BMt#rGvwquHquQh#8fdeFS1p-r{hG!qgr~-(=aQsiHg^YeA{k{ z_k^dy@U%YRq`AJU$*e4X4Xs0YAmO3lwKMn7ZMEgbU`tor3U9$EzX!@uMt^(Qv8u+9 zi2}l%-1mFSbkILgtg`t{#Ija;c6fh@jZhvOIv+&CrOuYsXjs=3&>D+D>krjRh%osU zx?;nZq&qij&>^ z*;V6sk!pYQ-Lw2_pz6$qEZjyFqZe-f0P`p+oHxIL%2dF^;6T=~_KkW8Y=g5q`-4kf zB+nL}rH2>{W&`)~T#B63iE>paQ;C`xToSe2eK*~?;@xh^9tV+#Uhq0h!A=J%jqHi- zrHj6lQ9z7peV{GGu4QyrVWr=3JQlY=-2@HvYoeXNaL1rRB-d|aHYtx z(h&;Z&MkCFC&_909(W!fCfS60x3OU%q;2BV<7YXN>1N|AVEd*uV|8fg@h<^MgvK{n zCI9PGOTzCaY&1M^u#r}tB(7e)OeGCB7DrlRu~}E&5Y%NK#=hJ5a5~C2wO9EGFF-hg ztpzznNh2J=iMq@oY%!H0A!6ordzFEW;dsj{E8(_?+o)6PDbKP%u8zk{z3cAMkU`>g zLM(QH??vc6k;!mnq`s1{$>~zb5j_>J-PYPyVS^%Dk$l?tt%SvPe+9>YoojZJqb<;t z6aJaSS*-nJ36l^A*~mIyuYsS=P_}dAzb0E@w_>T!jlIsKv9W@-t9a%0Za*p9OLY5P zkBnwJ@6|lcxz2TL4+S4L7MmZ+af0mf&^Wg7@W5336dq~FM?7tSv>A2JssP{+M7yY* zRza~RHdIVH5jsPzrCZt+&v>17?s)z;t+bo-s?i;P_P9Nh#@~s9XfMyl&Put(IgtLw z6H3?FDDe9b7;A)wC*=F7Brw-;`w+w7(Rc)O;k~fPrgm&6@eMKb@GK7>!qoNGd!&Zn z2i+NDPS)yC5^_fXBHMvJ+?76spB~OO?SdQ)Fc`<~t3)fso-K`{>-Hjd<+TJtsW|GH zp)I#s{U~LrMP!q=m-xUVUdMa&yVA@i8HixlQu&6KZlT@CMQvbOrBgXuWvFryThoAE zMyK`@$IiCd(?XXlj_j5NJxZPIx9)wuqKDopcRjFJkZLLnUQb3n4lACUIz1}(K=y~` zE~IfBFDwsz`hFw;OLUKR1SUwI6g*Nsn7_KcdUv7TLM*Saa!&xboZYz|Cd^x#Y7xPR z;-`1+;_w;%1U>*@0D~iZ&R>kB&I`yuFJv*J`$ZPu)sInW=NfaSPh^SS z$6G`g$AI`(Ij+urNckIoLJuESe1`NeAM-iT^_So=6DAME`o=N?Pd96#i^tkV?xvVk46K>2K0raCq; z1~e8u9UW8^wZ!oKQ$$h2fap?jTD9nig&y&>zg12&G}x1OhNE%sLvtr| zehUEKjKCXQEPGEApdpTPm5mFw${O*&%JF?JmuYGd~aeGOGH zNy80u)917iia|MO5%4vAxWAzOkIOcp@)fS(U-|6L%I@UbddRsxwb5+vT_J4zZr?iG>tH4* zgvnED@(|tjoyF#FR^NGs9RfLs5oG_DQ+Uo1_vZZMm@w^hA4S)1SL z&KI@dXQ0oCq}iUh9eA>zM$tRNBriKsxMDdO;Xusw zW9oKMgSnwS8bd*?v>X2RcVzEXA+IV2sR1F0g!?nTRGx{w*oTn%2)~p%wG{zOs8HTU z{Gkt2Q9)y`;Z)$!_n)^5YxvU~cXy?wTDJhNV(p0A-BcTzU!>RA^2LpZ;oIVvWJ60K zcAJfPU@r^g7EiyaP|fZsTa7;4e#;DWIic-=-+Jzoo2sh z%oH&bzfD2jrShwI{d9gb+1qORWIea{R|9BUx&n{WPRsDJ5i&jpmY`cE6TGY$^<*(I z|E17M1QYHu6)f9$y(40>PXTZFMe<88?Lk>2KQMRux5e_`PvYIz&ay1^geNx^NmAgK z$O0}noU@dal%4~*L&J7UG;Wa%eBL_*vJgj~mL|vamn0rq$I%0dnampKhs7!?LXU$$+tf{%;C=i~zZ`vBrKkSLt1EI= zd^Vpx%!M@kK2B9n0a@hQ?fw3C$54H*Ek~@DHLWLRgp~YY&3yNiDb{x1?i8ZM(BBi|T6cHS zv#9~dpW&j3BT|_NIjtzI83By-ATme(NMiyTsOg>~r7c|f`0SU336iNdn;aiHqT0gE zTp1Ci$V#wYjQyf~NzGj1TNbkRjy!t^LIp|KAc8Ivj$8cDXp5v1d*fx{KK@ zNC)<0x1646IZ!;BqsCs!1O;_jd@dDVv+)y@_WW=y<9Jk;>r4NSjKBgR+WIN->9Ag; zCv;(brPa2oiGV1!J*89jhva+>-f>70=g3l)uRRc57gwy0TXFKtl z(OuIO_r`Rc{rFo0CdI2N#D2YV3V-r;aFoKBrj66km+jj(MSfJTt$8mDct2aNPDxZt z7;s#sa#f7N7t31PFIX1P$Gj@1~f3l%G#OWfk!C*q-;S`~|> zcz2^70@8;MZvaQzQv(P&+oj_36aW+!7zilu_BAKmJ+a3=EAcxWN$JFK7c0stuYsW z(airR4Dz8QrE}7J9>)DYpviJ(@%?;FSBrDd5M`A&4N4xVW{-#J{dGsAXxy-o#Xz9a z2J6`vxit4~QGR#(N+0uBt{!3TZFS9RX&-hAO%LcKW?yM4|}%=0bT$`!myP2AVaMC%OP@x6Q)(|Nj^g~Gy7j%0O zHMyXh?OI;L+oAN!t^9n3&I)C6MmF3M=Abg_pnMAZtV|MaR+tNn(!IfMM8Xp&yy{VWUlRNP?BKD5rvLT#f?NR+ zhYUxxXS4c-g$?XFaX682dNC(({GkF>NM#p3N6PbP(S zW&LR=M)v?%Y0b%+klrfdscrr5(QLdIrrJvMS8kT4TW>ACUkyYJePV~XF6mc}A}64s z5zNzOgF^@hu@l7!IqA^tDJmc(GtF_#+3ylNB|89=tLAY3=<0gO`f)plK6cEm=vh02 zAj0)M*q?@ZXui(g|%cn-iO+;1)l zii-MQ=y0EB89)M$BLNnG8ZG`0>J5)jW?$as>(WHF6y9S@^o7oCSc>>ol!uE4#Ym?R zev~VE5#ptVoO75~-aH zfv&eK4ip-*etolcs>D+o8)OpQzO$IWpl|c?n(^go3(WjHSlkcw&v&5If#ipD+dB$XHC zhwMhvKSRn(SF)sja%F`M$mq>OZP*akbWf|7kjnx*Y{vo_#58V-Ii81!YI&tzim1VA z>#6D{E@|_~nYK1p_}aeK2R=H}-4tNh68)L#luX2ZfPVb;FY(?qN$6}{3i9@3X`blZ^J`xL<>AOHLK=um850&F&=PS+O$ z0rrDTg2#gz$0|8PJDQf=_!QhJ3ni%? zoSQS#dI7s>?8nmPVA>wECKFzDFzmL_p%^ADcaUP@2qDU)0&ZYB$JM zHP?YyXlO97geTH5R8-oaS_C(Xb4sJ*2il%aj<(wv5y28X3+Zvfoz#$pB5&wRVldH# zdPaqeFjI!~*#Moeu&^L^<7j*~FKm}4x_!vN0VQO*rJ|T773`ZkBr}pAb|6`1b=8HA zRii1i8#-v9x+c0lrMG3AC4=9f$5+Pvkgv-9R<`SH@;fzKo!j~;;Tq^6?X%bc(vTCv zHU?BH$h4@8FdY0R+^s?mee1L}t&?>abg@1z;?a0|HwUv(mVDOK8a;(Pei;=$eX z@80v>1XBnL0gI^=?O|)rx@tQZOk56@rXVpL9#7KB=laOp6seaz6bssx6N|dG55^*H zjsfK;2kPG)pl&&eOZ`!Cd^ToX{OeamH_*60zCe?T4<0djj14I&PZ$#mbS|L^{H-Dc zUM5>TC)e~m*cO}qJ9F)DRId7jp+o)BGrM3EF!e0V!cRc1KrPgZlFGeOmzK&#Oi&X{EjWHR zDirkKJ6Lo?8B3t$D2ZkJmF*HjC4P1Hr~zR3l1 zYtYlPu*D&%r~Aq@h{lXzO7Zv`L92LL^1s!PZ5B1Q!^c0Cz*W09^O)u?yJ0Xk z2Jqeq7sC(G$JuL+xxBTeh5%F}G?QV{Zt#td<&hty9DNgMiD2r_v9A7;F>YAj#9Q zBCm^k;x!02(_8o^h>9IG9taEoy#fF?IEH$PXY*SBSJgT@z#FRK`LQl?X$02upPsb2 zGH!S`FtDVCZ2h(D_;zn?;wmgM(n%TjSP5|jLiK89U}-I4|GHM=YK=ueKds3?l!stO zHUdab0VAeE@)*DsrW>dy+VHZ8Ewmwp%qady)Fs>}cmwD;Qghi8qECmgFq3=o1|mbJ zT&W8<3a;xjx{2uSb-pVRhxne`FkM$ic zEGo&2gy?7939NO3B+M61)c!`-G+5<%&3)?i=a&rcG&EWr$%xClMPb3@X;&4%Mj#!( zU2t0;Cl)qeZ;?gREPUJtDok7#dtD65Mj9m6wtD0*=j%K5X}60?y&*1ay2=ZbejXLR zG~T14K_|H@3@_K|M=VIeRC4Rm$a8M_{9cvShc{Hmo9_U#tMF2O$X2C01~F7%4|$5} zc*ZRLuB}+5fmd}E?oi)|1qw)V<$+eZ$ifK^fQvQb8q%7K)ch?P>r)(JR!O_tv{D^I z1-q!O%-0988imURv6aQZHmU`|=saI=28@!TC*Gv2Q9-wXD^LP3YdOK_N-%vhK?8uk;t>obsEPnggUvsMDVW+B+CT`4c#8J zu9b0U|B!p=v8nMj{k8srVGZ?$3g}*)Z9Z!<609WjAg_VPVtlw}+OPi$Qp4g52QfP? zl7oynLuH5A;V!i%byk8>8_(^;d6W38T%~bGrp`~>l9!IdDi_8J{tArS0pH@Y_hjo< z+D4#=Xcw}<(>}}i(Vp`MxmMXaeK*PRV+?CdG2zrf2;@px>q|J)35 zr+MgxUf3IwjdVf}NKOf)Kss-%j+OCf86!xouh+C@Dhd9GIe?AnVQ3RDbsoJtpv$4v zFY%-2-8rZDjS+&Y*Sy|#pkDK6G7JosYH#Q33=o79gESb z&sN)aO%cpP#t+ma>9)PoP4_|)SkPw012vL}S3L^2zEGWTNtwBCKF@b-DUe$E26HtZ zOVfnKxOhhE!J&4i99kV>r!`p-H-$Q?r$7Od0CZ|Nty>^vF}*2Ma7vRt>ujCMH@B{d zFK%5zH99b2>H-b~td=F?)sb1N^VDDl3u1Nm@>s@dAmPNpu7XBSg$C8s{C=B9!*4;B zw<1~2tLn&{guznp>DLL6$IU(!wnr^rPGZ#>e;dqON+H~$c6Rl3F+AYCHO=2FH!X{G z{Z~85TBPC9E*@r9zE=#eZNDlmvZXN${XQ|&7uuQOQSSGs$ zQ@^C5j6w2CP*nCRQx24gN3&5yO+=1%vc$OcfQrxdSg^~}`WzuCNTSR^(XH;Kq_lHC z;D2B^bOqj?UE^PwE{iQEDZRm=V`}KVemMq_6Y{G7sB^F92|dVwYS&ZepHMT=kT`P4 zt^bY~Kp{RqG-f=#ZgQow4lRZ9HPG8wlHMH;Jpr?^aljvaWk}n4cbSv|$4{-*d42F{ z?YHMrt@7&2!xir#<9_YkKxsSMjs!gkrU})1_k)7`gf7igB>&D)t#3M4vS+KJN^RCH7&E&sNR`E!NQML*2hl+cAc4x7X^^X8 zJ(x|uT0$f%S_>^0@XnC9fOC^qZFKdBUZ|7PIItdBdjkG5Y9>zif{tb-04(zc zL3$Wa)FMS5u$pOL6pHUgT2vZ`F#Fo67mfY$pyFpqJ^J(Sci-6Tl?|z+UNh3L_pSHK zG0h-0IknvV>D0(I3oWF2nj(c*2!UuOvUCpEYTjb^>x!f`e{?SYsNP9SZ5L zRCMZAc~Ay)-aRm#xI@>R=094pA|8K;krxpJ^WhpX+6+2TSKrxO7`PNJrolMUm(ntN-XYq_ykO3TBSE$}S%2h&;p(H``k~&oQ_Y-|Cz^)>$K}>)Jxu0RFR0W^noUp40u8*}7`xW4 z^8ubL0p7|}JADXFm$%gf`GS4V7R&*zPYu`T7l&+Qa4Fkve9e|` ztec{#Lyt~A+-O^?VQ{R>dWHp&p6n4 z1Oz3K&xbrS)Xims6C$peFivNC@i^soeyNQqmtn)(G63S&Nka+63)%8{B%7V+U1tsK z){y|$xi9@QIY+1>j-M5xv4D|jtHzdQXD`ySXaaXUm5QY9(xz1;q>3(NBhAWBrgJs& zBy#T>lt7&W;_?5s3{tufg&)AIFdzB-YGvey@#_7DQN|McngQ0Y@eo^9m>E+@B zl-2L8bv(hyJ2j1UitI)0t!BBN%FIt11Sb8-#(?Irv_!-dNZpli-fgAkwsR`7?+d%! zec`8$mA@u4hg4CrdxpnOj41^`Exd0@ZM=VJvILGQf6kNz6f`xr z&AJMtBqaymGg~`0vkm!Yg>z@M+s2#!4Eec^tB)Mkyd9Y9fgZO@AWPVU=|*_CZ!~AE z#7xz8TB1_9_AygKhR&Gcvu#oU41{s5Cw5V`tLzq)eP{o`4cIY%F0M{u-+t}^WV#@^ zQE{xYTX?Z_F0Mdxa)c1Mx_r348)>*?@XIN{_+4sKpzV@}R`#xo| zMvji`+If1E={xW1cmXM7-fR12}sU@L!;QrLO+8hv^M zdmz?^h|8{$x5&)8_Gg0+cvy$Kw|Hh_2^zR(EDTm>Vyr!}a`lxbPU5ggvLlAzL0za% z8k%Kz+_iRa{=4t0#05uB_J-nz6dO|NlY*ZOwI?)VP>9OBmve~9UBNXSif&c_Ggs+r zWBSesx+#gHYI_PiI{&fE`M$M~&%@o*b0UmylOfcI|0#bqDt+%#vb~=seZSExy#4;b zoJ=c(_q}z}Y=`ydR$l)>(K5o#Juh((W$|#|bfWZ|ga}aThejS8brD7ejDCvvaP!RO z@~LH$^U%35X_y3q|N9dKwV81e=WX_(lyKX;%5XPnB@#U@^JG^ay}HtE(8F$AUn7c; zoNnsX_%q0!(UQ}y+BoLzb7y*+JApxS90HBO2TnsOeV4gj0FsD{oPpOTlYZJ&(%IQJ09ksXYa1h%qBlIF#by^Q}HYS|4d+(hm_`;_2-dMGobn$MmFPm%eGu^wK*2PRH&D|MQh0}e1~fDf`4$&V{qmB@{f<{ zFR8R@R>4vNI8JJQZ=Gj1nvVqXYrNRnalGMrZn#^5mvkQbBt3b!K{j1N8JD3sQ0Bc!W?Rag;I z8(d=A=8`z9W`M{jUb$wYY4_7~hk8Hq`*(j4I5-KucTL&)A5#u^N+zNV23EiK(EsC$ zV=xGmH7}%_?rd6YlQlUz$xk~xC1RSMmR`o^g`anQWwn&hVD&cvGA1{;qxDC06TV*2 zh~GSRW^;`hu5e!3J1krHKB8N?5>wV}oR&kCog(0LZ}Wm8Xg{5^xXMed!D@y6Qe1ny zF1kT?^C^RCEM_@W>8WL?r8wmMYVPO>{ZQ5?tQ-CE>R;Xk<Qcnsq%xD8l1=bI z&|HcYb#GxfFA1-c`DC$H6+mr4PqlU7`!(zIWuz6w587VK@vLq#XQ4j8xCmfFpH^cv z?D2cU5f!3Z&(93EQR92lV5V$uf5Ld~+9|d!CNsT4Qblk-hwSLcDngF z!R||0999oH7eAH15jK39iY+HHmAZs41wRH)w&p0#^cIAYK=)$FyIEYG&yaXIIY~pG z;A9;h5lr=i84EyLBp0sF$=ZNhNyg<(?o=xheq(Z>c0qfX^|0GtfIT7eE!5NXEYcbR zC3RftBJ?bOC=9gd{N!0mdA8Sfy5J=jXbkS*LBg->ijL>%&;*C3%UaSf7mS^%OBPxx zpep3V`*sxL$hPgN?^^u%aXyJLSOUDx=jY&Ts?cJ(Z1j_F`Sej{zOJ5QAip|=(vnNC z{u+3q*MPaQ7nNl7hVVq~6vwOh`S5qo{1Np@YWX4ZILtmdvJ2Nl!m}{w%JXQrQaj`5 zT*iMB!Jm|XhyxV4EsZN+RS^s zCtTw@UZuWDdhgVrmTS>ouV{9x z84WSjGkHCwvQ5_9Yy~R4Ewn+WvesAIR4lB0{Ju3>w7#4PelncvW4S^!Z5B}2D3!WC zxOY~bQdFJ2<+!OkeUU$9CZj}juE%-3fsUpO@Kg>M*#J$qd>4$AeVpEYF@4Elne6pa zCEYLaLT&n98(?@Dko2f|lwaIfa89(LIRLg%dmue`7Y3xMrazh;@x$cMRthc)G@_96 zY!l;%DZP7Mz(^k``aD04Cv`h<)X8+zL;&8yYy|224vo#@%NKl2YzfsNzoAOww_k@8 ze2&hC!0vjJF)n51MwN6}BA}VNyyA7+8#gc!V7*+3yXnJ#ZD+ zYzq8g5Pg3i!lG2dLP62qlve;98<5G(O9m!gk1#%A^!3WATt?>;1!vp@=?RlFcJ?Le zdmcq&5a7;)4N=hm`vez-M!_i#CVR*6ZgT4VL6MeF50j--D}+u*^7x;<0KAvVb1Nrq z*7A?mdNk;~x<{Ie=NaOin~|~idEF%QBki$ftR`1#7&<@j-tVKPU#_F^t4gW_%sKEG ze_VlWxq1n>=DCeusk{Ua)qAQinXSdfdljpy6!(pymX25bIO!kly^pBS@x)p_Db);=6yF+76T+$HoVMPYi zpMR^^R4E+ZrDmYAknYq-fBV?4JS}XW-f76eswa|uRmZMsKp&Ag3T8KD9qy;en)bNy z+PW!0T#_6lo8W$HHjkY0E#q7d}Z(%1O69EydGYA6XRkwC6Jv@c$CO8=<`A z`Dx%PR1NkMF@kW$GG=g^HSVRO(x>$Jy``H9vY%f2`;Zd%^=97iG426{dwaWr=MTTJ zxz#KXt)JPd-l<4-Ng8H1RJX~+qq4Mk1DWRVmqrb?U^Xb`6Qu+`$-u?(v(C5eG{_lW z@@~{)IFS&(;E(~!2tEv)T?|ZD#MBkODD24{oVVb0Im8}|1i7CkPG({<2?bY$MMtu}Rb8d7FDyE2I+Ce4Fkwbg8Ta1=)u zygE5w3&wsiLZxg(?VJXzD9>o)bsGhEg$ZWHbn9Qg*FLRRX)JY#)Yk)EuOaibFzw!u zPBpf6(y;G3fny@)Lw6wcz%*^nb8mrNCX?&J7y3N!UhVMALHCsGWgVaGHAuyAjilLQ zxKL-(zVaH?uO>6|G~3sIXdbvco3v|*zVKQZx$fV>CZ=*3dF0-M2|Drz#&K^^T=Mkw zJ{*h+R=3KY54}SH+zj{Ex_{Yz<$17u_8pjw_{$xmUio#cP?_!^F1>~M>3#owoTkGx zX9z~x9ZgJyD~(l&pP_q@0VCw~>*8dJ7v9MT4YTjhrb`ALIKL z5VUWNLJ0l$tMv&dOmqw%Ue(a(a-AE&l41P}c~e$!ca9j%I9hpl(xa`09tshYoUwl% zH6s%{&TUXthM>B*FN?Q&cpY0o1=~S4s^!pQW^ASZvqRo zkGvi#1io7r+LbKki>o|b7M^mExVB}EwCMu?R_@lPXPhXzmgIX2QV8AoOH{Ipf`^%W zYZtu%z4ts#FH%o8(p-8h$saa;nAUGqJFesCX)L?S?(|+)RrS!m@Fx>w^FChD8Lo?1 zvGPJz-!)(f4t-qX>kU#byXNS#Nv&{(YDeqrc#hFqZumDjc0n9JcudNle|qhMB#{5I z?~Z3WTLmw@@rf*baeyp?SFN?01nPpoVQiTWjRNAZHaE*APV2)%vfAkwiTzzE_w`Wy zeawVbniIDn>7!#(CvdBM;b3K^RGMIQ6lGf*;&m$EdZlIYWlot_QAhQzQUqp!Yt27-j~KGyzuO= zHmO>!G8-L%3;{+U(zS}aj;M3!xudVY97qk6<&L^SPN=Y;I5b}|Jxt8oxa0iAnK|ig|ErDb7bCCkn#d7&bFEaX=$1qh<*;qVk^qq_=*Jp5n|I-I7fo; z1PN|WY#Xp^C}WbHzlHlXtKPmJ&l1nxan~_r%*#RkWY_tm@K4@Q3PKtys)aaa*1_C( z_cO_kyjWr;najHk*0YWd6*x%AkM!0h)!jNK|ImF}AbQEpW--a>8a$3+GfEk15Ofu` ziD|4H=@x0|bk3PL6kpWR+z1KQ+t{JhSn-sl9p9Dl0;GH1a(F&EDvq?SJ4Nq5)7MUp zD_M;3WgmpTY_8qaFJjqFju?GOh;+bX512FaCi}~wVQ53 zZv*q`q-nuqEhI06B_FHP?Wt|NDSM-rd(+^aa3Zc{38RrP=ener1J*)=@7BAxD-5)>+|H{V0af9!21@rnl*=9| z`Y$~q2h#9Ewpt?g1mECy^QrVqCS=}FvC%(D8E)0(3Un^IPT&m#aE4#dOtAsbh&YRb z#rzrb*d{A*22}!2unQl9J|omc1xEso^5)SqCRfoY4OC)FB))9x^R%87PU|qgroJWZ zcDsqDl8s}y)lf~7IS~@I8C7u)uEs1|xIG7RInNYp5p~B=nzd)foA0A`CACWS?F#&m z4~F~s$Q!R7ORz-Q9(HZFL9_Fw%Y!n*BeJNg*4ip+^5C8I|_}+D4 zF!5&GlQ<<=Q*VZX7gxrLRQ#i8A5 z3yb&-?`oT9s`R8jdRVI?bj{_VXyB%KycEVw=9Hgjm{V;ocEHU< zh-z!e{nE`Rg~4@!4jQq<5JkTA$)={*k-%?)DWOWkj!{h?Z!&wip)XaU8VuXKkvu|@ zce^IAGJo_NX-fkX+mbYLTg}`bvT8Ru1e{M7lkW3`;(CloS|2?S4%e}Cbj4za9$$5? zWxk=1;Aw7jaRj>V8#-I9jMF2&&}8t@vAM5*UwS?@6)!qZ6S?^&2(LH&u*)W;ROqbZ zHOeq~Oam#2%2iWUGH22R&K8nwZId`F%PG;pv-Y7cJCbgrJF%P)d(7@~=@QHv^(l-*z(3Vm zINv>Dx1CC;AF{vPiA7&IKi{+`J|hSs1uqoM8|cv)*biu}f`q*5d@lnjTOzeIds1qT z>Po6m1y-QJ(Hy|FZFU=)-cptKEG4CGk6HRqUH5<10cMD;XpQw%y(eKbB6~a1J2TVI)MG6RvQj$XH zbNk{bjqj|O)vz_3T<14GLjGn-#KRu!u`5}jKMw6m2gNb#@oHFGY^;pyW)~Q2lmz?2 zGSX7Knxooy^tQ-zAjM+iP*547>?}-Xp?F3?mqt2aFV;~!S+D|=eWXyWk301w54xv- z_<~K{QlDCpx_lOzQ4Y3!i~qpFc)r9F%_Fb+y=e0DI*!b!d(>_p<1B942Q7$mYJkT} ziWYTfxh@cDT{lS+|I6zxwO zL=Axf2;tCDV|zx8G4^e-s+9E&URjqzwkRIgG*Gs5lY_^&1BsiWNx4WvjGOAsZ9^DX z8{ocnzZXmIlw*6587_1geGExtL$1~gxL-V(S|=_>OBilp-`(=;^l5_Zhba!9^7NaE zXKkjG)l6kOK3}nYmahmpEamP_xtN9T2}F@Fjck)H zKvr|F<_oJhartZ(oBFXGPWa!g>J0FpEduO<#C_D#gv?d)F|s&*zGda(`PFgAIy0ID zEJ|;i^UW;f@~Y*)Rf9@p7h{_D*^7&q+A_XJZ~6LNb$Kk{!9q#A^W)~@^K_mEQv2l7 z?SM1J8)J5Zju6XwKPd0Ks+E#)IMLYCTjJPt!51j)wsn|%vOVUwS2VhwuA-QKl0xXC zcoi9+j=e23KH+|(>)G>U)zOyuB>clTwO(YsmDdF(jq0iN=V|FWy{pLAsRg(bYtXe& zpXhHszOmKklrem@ZUkDy*=j1K(eIoDt!TLq)WqW^e3HlAPK0aDI7d6=YiroFix+*3 zgYc~OIU=`0eI?c{Exh55_9N0&%j=oPO~ZgcXy@;WdF&WbOx%pBXF&D@F83{h8ngfj z6l=ptyH6SHj@b!QM4SAcf?$GfDVoKas_a5kQ-MDy8xRlx^7zJ%45^&t-iuRmqGslG z-eZ3|5N$VGo*5KtMV=pDF_KlLn3h35mqNK?C30^!128X99J~6Q#kPBUP`6^6bt;te za`@R8Xeb6%N1>=X&^wtk@G*;KcdmIyq>$!C>o}oLj$jK|-0Cs=B1Ym`;S_#ci!fvC z3ADuhfRSOg#;tAfy<#5ALmiKZQ}wUH!y6khNEGtLQ>sgaF-7KEPT3(%ty2%!UX5wc zYuOEXp(cc%;+(Z9Q;n&sTR6gy6YaBql(3j28LYaq`Xe`!$XOi%h_}|lZV6yvA@M1o zwnSTpk$1uQIAY{*;fNLmIW42M_>;y~KJ7u2O)Bd}UwML)cUM7IzT&R;wX*G8aRA3j zdR@S126jRrVayRiC5}Sva$(5Xo&2TxpG1D`i&aoBtdQ=-t4mo1iFS1A;VQVlFa?$?kOI#+(}hDlC;wwG2n1M$46yk_z(o0$V&`A|pQ z5_xDCP2yR9zVJ(V%<&a2v_#OUT@NYXR~h(Z=S7%R z8;geR9QAs)##!Tz+Ib{5#oQWg9}`xeHzpZSiDyl|nC-eWnJBp0Frb1aNWLrkz{qWs zIr$7-K&9Uhtw&6RGEzOJr1o^cG&3V(j9n|76{i~^#2gahXpbH2M-gtw@3rw@Z$;d) zq?E6*T^Ql+b*9xAX zaTy@y@I?#S;&#o#OQaQNd+CWugkjBL@MLw!qn6EuWb-S`^4*0+rA3f$pcstR6WADE zd7u76PqImt$*RkkFFZth|2yQuz;Vcs?NqbfJ>*NUz*57*V)U`W9n9BQEf>7YUI{B# z$TwT>3}j-MF4b$S&BY5cL9(+^l?y~K$vkgzKU23Nir;Mz zO00Y{Aoz90rKymHX~GTHn}j))_5xe_`Gt=%h^OR0#IjY*S~sr+PgX!nA;0%I&1x)N zIj^r_YLaz|ZMG(QCQz^f%s?oldMT}z7qg9)9}n*~94$yg+L@E(m^6BMN#}H`oBRX? zw|D}OW3B%z$%qjN=6e1L>zrt%*kY$LPoCmY;eC;Mz-80@{tt%z3zm`-=jR1uNY4J| zEP$e9tZw5Tg_A|$6W!e2tmklYZCc(^XU;Poien8m)5h|=x0n#&3_;8v*dseuQ|!&u z9=37gj*hXl|7Qk%^F7PFEKiW4kz+=)UA zJdf3*c5*k~d!t{>90=B9T6*`NcFYrthQ_eRh9`4sZ9>ljw$$S< zNJ?y^`BhRU)1no0MZ=-rR!gK@(4?22UW7hkLfa)mVr^&XJoD%r6}8EXMyK4W|IdoGRzlfweLUlMvgYCedlA* zY8XnY`PkCzG%W+7ISO}S2e|;Aax*1yPU<=8Y{`#Ea{{eBDkQa+gz8k)wO2;(=fd5m z?OL_TVXUE;c{)#=p@`&-VTCsJ?&UeSI30JWBEDGn!-;^3s;0S3o;z=yg_*M@XnA!K zIDy%e%eJk3I(kxe`wfXafrVY(=77SMl^>@5nk;tZz>+KQ4LnJFa@X3rXceO5yV$re*LM{lI}*Ygxt2 z#QD~3$Ts0vc4W-Rz3Pj;WKO$UT;`&3TowaUmPd|L26J5Ln(T&W7l-M}3F_Z?&fJHN zz%$w?aq6=#7~-^uIBl!1^nZZI{4VauJhnFWcsJOvyW$+-gfw_ZM^uIW62z36Sil13TGkmmo8_hkmh*eY zg4WvcdOIf)lV3^E4Fa}*n=ZK& z0CoUULh$tzT)jGXXjym2)sxd9q%daJ2yy=>q#$~u~)OcvlD|M99HRGeg&9`2$)1h%u zNVh7TA!VdrkLfSmq#SOS-`!|ReTMe^Ys19z@7hcAwbr6*nVci#Hf)XL(4`B37rg0W zGc^F3hbdZDLCi|(qisvQK0^E<8dNm$b`pT)drmo6IA++JJkSYJY5NldLS9(JQNkOv zwwpf~?JqWbkIfIOncL%)@8h=z`}sg9GYKVAgyBADv!zpS-cOc6y!K-l(45HC?7Y9q z%5wHRTiG2K*%s^tiQI0ZSxMGPrcr76vw24J5KkZ<%59d z#XdV!iqkD<6hV)3*48&@_!WuM4(&)}tx9hqab#BG5M$nsWRiIB7U@@yNSF*3_9lrv zLg9i~dUW1!SH$Gux=?Pf@6WwwWMW`sY89Rj^qVazMviY93l4dk3e3$~)`W~nIk@z+ z4txb3fp`;#a}tetS!dGWzmnxJo@PagRd)8ySLmKHZ|WJ^XO3Gzr? z4orBPBZi$>hI^dJYN1TtwN?!mjbT3jQ-5v{`PKV0zgmG4hDI?)QP{5zeW z_;H_@Mr(R)Q(@_qoYGt1Lan&9fWjZ9fGQhmlcYik?(vaiqty!1tr>68jAB?hM)`@2 z&I5d*t4sy>LjAo*3R%G2ynp5;S+MUqQW|*)L?9X@KL7zlo2`E;1+&)mX{DpHAV~CzSpPPJ$+D`BN?q#U586; z|J{&LvO^k+4~FB5-Cfa|)*;r!M}&ry(Q@=Z_xqPy3TLEY2Dd!dGGr{OZfa^8D$hjz z`LL+bFwIKGHTvAsb<^k8as94uIqyTtobIFXt+K=V&%9(`tTC|mAhZS;I>}^PwlsX} zi5hBrPQ=Oh(QZuEjWN*3&#;Gd9~iesi5)^ z22SgOPyezGP(~snKn0j`*s;5dl#s#muZ6Y=I zaf@#$>}ChZOw`F*K%Fp)N;`q8RR=MOSksU1o+&?N`u1&x>G87s2r#$0fa>h>lAXPl z2m93txAHS)S%H4G z1n!PQ5MfnIujO;Fz%2rD)e+XqKhxxITf!h%#=zW*&q>|K9}~-pi+9)0haoxsBnySp zFcTC`hzkuZm%ppzzm<(+Tve&7Oxj7@=d%yn(<@|!6#xxSHsh*wD*^~b8S!?@Tvct; zcW>tF>{i-|Ra8~0XR9}}1dV#ahADAbXjYcG9@}i{cz0V}ZEmxc9&$PUVJ?(B5pbEb z*}tSsx8S|o1zt8&{ zA|^2~aB9(Slk=Ve>Jq+bv3?|nJ;5M}s+BEYl-#c&WPhf-Zm}rp`gw~{dnfraYyCl2 z0OOMihU`ccB|R9?iPT1Njw0&r!OWL{(p^2IFD&RwxTDQBXDP*RW3tP^)sp0u!GA+_ zJkjJpM8H12M?q`Xd;h=tInbMBK)9-Ay9vE8q*(qp$(h4BA*M`2zGA)7**{?+dxhu1qqUA)w z4mXR67jt-9w2QpQt(5x9s|>4ixh(fpUBUgY1NzS=@;%scd95D+o=)NI-Il2n7A(CctCQ^0HH4zU45%S5uN^A)@pfJM=7$2_aC)P$6ai( z`QpD?M)+ReMTOJ5jN}fz+jSTg4@vwzl`Uh06I!H#c7=ZGH6mdY_|KFw{w6&BIzRs; z98&Q`ImN{kWj8vZ`_it9SrjVvhx6!C|(nBojRhctJw(Sp71b{0^@b21L9T5q%p{BLhct9T8k5@mcFmXv4u!(xWTQI&jLScmdNUf;p6_CTJgW^?u9j zq6U4%#MN?P`R9&=Y88fw9DuFoMj8@Zz_TL|;^%$25&hZhp}fI7`FSUVMM=;csqzb? zu~cD3qf23AuBLbHF!?)q&PQ6`!SV+#SwcCjQ;t!dqv6C?fwF%dt}hlkE`zc7H-B0N z|AxC?aRKYc@dKeO zTEb7vw3ldUhEcQp{kIQA=k%$FD%n2U!o(|_xB>-^+ar8LwK;0@&+-XLTG;lWT1ym4 zp5Jc6!<{@ZiV+dforMVqe6f95o1at6x-Psq)t@~WJJI8g) z$`Y;=Z}Qc8T`M=-@p{KRN3ZAAXcUZ)3M+{S{1llhH>hSuE_7IR<++(mqvw8_yeA^> z@7!S=Djcl9=SZC57RQu!41M?H)Q$lh2*pqn;SaEY!mWP~Xh(-PH$S0+{*4F&$KHPu zkQkDxy1F1fj1ei+?$t1!&T=~D$LsU3A>qtNpfUp^8(G!E=^~K&qCwrH>@yYTX52wA zWD&y!HshKRkG;Vcqi-U%-nY{I>ni&nQtiuP?awLq{WI4TvfA%qB>0Z$9dM#x{)6 zy_6rs#SvA#YF{^bd7v>6J;)F3*=jU!p<8GyiXrMHZ%n5ol*tz2Oi8YN*&t5wnoUPw za6cu;S|GQ`&k%fDo1;)UHQS)~%&LQfE8ud;By#Gwl0AQ0!W5@k7msM$fxyjowjoSa z91f1x+fADn4l~Z4nMmDQcN-nljVmOt9J&}J&6kP!OXHDofhd-CfAvMzQv-%=`xO*o zoE~S9{gRITcWWLx4N@mmti$NKEzF)`{$eqOF*PfV`}qs?i{zBO61vQM@?~bceH2)* z_$fxR-Gk1-pmdvAxT0h(JHa4A-W>^#tw&LiRgoMx$!e$>Wg6ujB!U==CZjJ7N11OCy2fXb0*quDT{6M$|;cA=V z2B?zvYy#AQr6)=7N4T6b)iPbtqe(W_!3wx|mf zqlO`R-#j7}^opBZ7Q0tGxxOMFBJxu|^@2t>9}i7?5!9GXKKh#})JPCk{rD?UKBf!_|~F5Fgu9C}3> zCkCyxg0W~3kp9G?|1&IpKzUyTtabAzZmSix1`=Y>2Cxze0`&V{Z+;1K7=47V)km)DzkBeZ}WDopn@SsLX zn?P7H#=?pP$XQ2Hc`JsRD)TaqFN)Z38S(9GZsLEXT=c3RAR^70QJ zx;U1Q&F-#Kv_f_2FWGvHF2ff0*%n9Pxz3Nt7iV=LHyyvbIZ6OHNE1`8nNx+^8f&@- zt^lU|(BFm5A@+L`apWh@0W3H)X^4Cu7>t7!&nGVxqPl!7B&q){T%rpo=S?su4fm9N;#U z_~Bz>gL+`6`iHmS4@A=Z&ePas21oGUHI|INNgg(IGLJ0ct(<$)yeJ&$E^)wVAkfUc z)hjcI_ZQh19tyeb@0oGWnSRWNoa?-U5@^stEMS7Gm0x+;58qt-sjZ1D$^e0kf3OVf zXa2ttKA905B;J@Je8qFEx+;v$@Mqc)rF{JhODge3&pbQ@JT-p`(On7fyzr69tvxHLTlQE6I)i7Fh?kRs+p{SX_GGRd ztJ5}}40Vb+Iy(HSAKV)-#F-3Q?p%`&jgyX;{Ci`%E|d&4B`y-XprNiV_XcBNG%xZ9 zho{g-c!=hm{`&4Akq5Kj&Q(pWY`hKqc+6yyZ6*h?Vl5Zl;gJPu)%V5Nfz;j3FxR}B zOv@oQ)xcvp*tfqzSEan~6H|zDepp(2_geD6-5qlb@85U?4`D|@Cx{(8FG0Ety0PVX zAw=LS!!p)50ax%a*ciuaU9TqGNATsS^d+0_)x5Fbl7aOW_xEJLT&c|j3)ua+p0%Jx zHWtfPXjTZiA3zM_x-=%Z4^o4z(-afj4dU`(%B6~yq{&Jok12f8SEEAR;$-Pr&-}?6 zbLFd$^P?)@yk5+tB_eN!k;of+IG&^N<8zVWn7-V;`OhIF9Q3E@9&z<%@Rs959OIS# zH|0#`@Ri{)8@h2Vx)Q(nl>#a_$otyVdLQ=6xKHiXWKnoO9VB$nm+XH#NQNcCP5{In z62IN8Mil<;cOY@1pMmr6^FsHCdx$g-LnP~f%bkSCO5RN<=UMDdp0zE%+cw+bb}P1Z9}eX zEK1S0MCv<@hjTR8c zJtV4iu-mXIIP7jmxIU4e$2wB+#w}HN&MNx;IpamarZMYT$9QIc8N#BhNGr>Gm&KPg zU@-N%zx5(6r4&lU+h-Zn*&){&IG9dvJTV5yl8OAe^s`?0RCv_Ngc$b4Jr>`N&(=8F zMC!XP6<_*~M#yMGMZ68;5owDFGcegI8(Q71gV~d$CX?N^IKY#vWPJyMQD=o{$HZPR z??Tk?hjCDBYY#DN2nr+EBlPQQm~m#Z?D|DM{QG2oPRI~saxjMN=M!OnwlZNcpqkgu zvJAVBQo#3>2FNOQlS8!B24`xQrq|kxD}jQN!o8$YN(>uu{Mli3-s2dh-L_X24mL*e z?QVC$eSwYyC{iDRj)9(@P=RK4Nal^WLb9g|%k14=&V$C$>zw{~)e&C`|GaLBb|qOHW=S(FhLm%4$RNx3qZO!_oKJV3hqLtZeV|2Z~h zP1uI1P-){?$S3;w_E5i`LCt=DFN8VDrxry6Zj(V*1MbY^6cagDhGdO(Xfs7pLjCY? zMsd7USUJ0braV~iidcz#q3s8>F}?E?>)kKQGBNcccoZu={AX4XWm;ly94t314ug!t zh#YjB#mt7nk3zUfwDc@#(-8>~xnD(hUTgCuxw^^>^d&D!Qj3q^;-Y#6*FN~h$CD(#%2yk`v&2q9ws zU5&qn^-zen#Db)-9L|*JRQ#V7gmauP33JYo>lbcsTr}|InYD429g=@3noTpywR#_(8hTXh3?N!5f5L7gto-O`&mn!tJ_iO zZG8+4GC8Yj^g*nP`P}i>3*+ngul56yhH{t6Qa&3EG#C)CHB`oA&4Cnfi*B5tVLbok zJENz+@yj5x&bQTJ7+5$m42t)YC^DznfmXS#2^)5j|A_O94cI<-&{LiX(H?M1!!YpVxkj~reA6ymLFHbOiQaN&H^c3F8?6f&C+^zs-vbc z1LbNiHe$M!@9ZBdxKA5DZQa^mpKi()?$yQhyl^>MZl>v8j-MF|6SI0!UAqanwt#Be z)Ofp#2*HTsp#D*|Jss2)Es{M(p`2@8D}bXt5ZVz6UwWXz z{1RXu3CWnP%e}}O7aVkt#8@$bxbiX>6FXq^J@v!6eM6+u_6%`~2o8#JQYA*$4Ye=? ziUy?+1Z4gXWm}5%u|@Y|o(Ugl((bJ`kjA*-CTOY*rxH>AvsuVMf5O)on)8! zxI5dIS8{JYlRx4L-9J#5r?@e=g!girOYi~i_!J_4Is*Sp#os7Z>McxuYA(#@U&K`( zoS*yI*2#BW1G9ED5j-cjdFTuu4f~wBr_hOul`x$5@mghpPA;oB00+Tm&jI<2&b=Du zf$X=FZ(zcD?AEKIjMfkN5E$s|>&HocAjkRbRX;xqaA7r?a9%tnz`bT-UY8bgiYq3@ zq!1@|(E4o3FA)laGyzjs0}FPB!e71RIlzzYlk45;DOsC-a9f_2vVD%3a0t(^3_31vD0zfoNHz_$I@*GUuk09i6_IV^UWK5 z08%dF1>%DgDYI{J{F4lPGXzz($YY^bw?`rXvi((CsA6rMlFB@zgd7^|5PxEpb4{ulw?k& zZ60^n0dZq)%&K&HrqbFJ?6;14@~k&!fPj&zNN)*WOqY@etd_&rP-$@iOp$)?k;44! z_6Hd^jKWuk&w5?B>$L3>9(gw^>!3~5^*!fC30f29gJuAxaS`bKUf&u-VykkB3U8c% zMbg^Y*a8vzmlg{Rmai$`p^Wc@Tp6QJ09r>njN-HXTdV({6Jd2Egj5%ad|=q%9_7cU zeb;GYHmLp{BV#%9f3Tq8HF3l zGjT}TX%(G_wcUS1X(hWqz7mZ}>K)0UWRyb92SCb^U!W`|ORj#UC{1=McP2y%$@o~W ztl>ZCFo@u`~ogxV~Ar%cPSlk_s2Ho2<7@1!9V4B{MefR z9oc?fAzML;#fOa}bpA^c^bZ&9AP1A5wu%3G@n6zuiXK+5{flCz;c8ScR=xF?{-Kyr zC%plWFoq5#Wc)PI^tjELY{L-U?zR*2x2kG}7}O45MP5A?C79~nOdF4Yqc^^3<#w3P zlpZ@r0j<7VM9xE;KM0wo+9Vk%kqY#L`teDq?0-A#Tl^}h8-b7+_aovp*gEX`V2Ucl1vh=6&}ZF*}y>mHI~%Cob~{ufa-R*ppZV4L^Bv3>7{83ul7Z08>##w?N{2jC`5=WAMIJi z&C}!&aBRzhe@GktsF*hx^LooE5IERx7_0yuTr9|jL(|(*czXtYZ=_1VcvVzz^q}x` zc0AQY!d806o8d$Ir4672VU}O6DzE+6SAnkeiLq(1MVhNB;5v4F3DFjQk5to^ca&_j zHAh~gFuPHb$0I_@S-d*^LKX#L(#WI(wS2uu(qqN4Gs=9Uid?& z9wB%yz-gyG%#j``#dxp;|;|K?(lh>%(;$iv}RwgArTNoCJjO1sUP|KY? z+vvfdjl<-?x!kVYAkJYv<8>3NXtw+gTz8+bzADg$5JX@pL=S!pSB=lrV-A}7s*x`2 z%vln~;TZDepoxxW*P-i^(4Vm_MT9BWA0VG*Y&;4(d` zaT%df#eYK2-zR$%YjO~GbuBT<>c93CC{=A_SZnmjf84DJ@utU!>n4d zmY<6>9G^!+EnVzxF9Z=jp6~AAS!fWQ+KOv#e-O#yv;l3-nkOoClVJmSP}b^Qa}0_Z zIXC+c@QP%mKLp=I$6e`OhTDZ}MxRU1#Pu13&vB6I#lg%h$V)*?Ir8l5<$Lnn^VdyL1aCU-{D!aQZ10mG)o{?YOy!b3Ss^9R8RbNZBYpc&O z6bx;&aamQ{jS)i?%zXquXCQPNJ_PH9c6+mHmv>R>wdqurDIuVyYyx5kSz-i%6d{DkmsjR@vIh?_c_$sVub_@ zNI`#C?ERqW;4(3w+2Q_1m@?-T?W=eBHHMHrdq0x*#Tp2js%A)+A_z~S4ok$%D# z8nZ73;j8u2@TE)hX%w>FulLYs`9e4vrL3cS=S^aI96Vh4XNZ|X(j-pn(FURl6o*C} zyGJv1>wz!z%3@637W#uY>DZ9p8gB8cThF5p5MY)c?4|P<4mySgm^LLE5%J=NR`2r9 z6Z#x=2WBGt%mL1+Fd>d4RvF#ptw5}cXvVv(&APqP6$vSxVyW%yBBv0 z&Y#}<-S5ix-hYOfJVOGRInQ(U*?aA^*Q!3a+^5pTzN^Pc`gEkc--t|yLoG!c!j z^v(Fo{T`(A11E8Kj4Ff2sCQbb*tqB}yJC72cpA$lcdi49({-z#!nbPpg zglR9Aw6~nApcU-)i*SvOOJg}LBl2zfKJnZD0~`0wHHCyutWD%bAOX?dP2*=bswFkGL6xw=Sl)DjgR<@m;h@`_)b=g)-{BL2^426YjmLJ}tZhrjJKDj-k z;Q2qh`ELhUDO0Ljpx*y3{XZ^l6nyn9n6nA(!f2IQHYPbT{74a<6e#HUIJW#(2mkE- zEXh{NQ(}6UoP)Uc=lmZ=xSj+PK<=089E2)O_Z@h+w3=XooRC#n`I~i0BN;XU2ISDn zGu_5H-5<&>zKmkV&e89v<|S+Tyr&{5`Bn1f*OROjhq81mi7$rHTv&6rtr zRJ3;E9pxGN+@J*?XLs%R)*v3$e4k3csCbxWyD8tmhgZ@FTpj(&u2E% zO_=l>Pe6XV`2ChFqKTI`U)$cJJ_cDWQIYmPv;brl!Wh>XxgdzY6h7lc$nl-;2`#%+ z_DW&Y$IY=ZwiIz$x0L8u4;hsAlFc?iejS6YdT6XSb&IRq7^>5CVd8aGi1`hD{@oRD zjI^TYjpbG$`QgA(b02?u5i#&dw7nuVOi(jxq5jh*u|dR1h0sNp`!bv`^4Q{pq7`&d zRq_I!e{Xp=`JDb}hX)Ec1t`cD)>Z$=gvR*%fAflez3}r=NUvNj!AAej6vU73b2^+| z6RuCnGGRC|kV9J^`DZls2vtI!kK>-((uns$>^)@j8+?l@enemrah|WNVycG>ZfYW3 z^O=j~NxDKPLVr>-Wv03pA?W*kK>AUnulL-r~9jbbF`XcOyN#W*v5HER65*IOj z9U1F~``f!W)-4qZs1f)3Wk}*tZ&e&Ne!;wsHPzoEi@VS{%aFYe7$Km{kh4qb8PTe2 zore`}yu=M2_BM8#vy-}9)4N&Z@e86s^A2|7iSYGWm*2@<^lfsg6GAbE=za z+rimQUDE7kx{|ZbCVQt-WIJhWO7C8ghK~?WWClmXN|yA@aYTaLz(zI`byv4rh1{(} zTA>`Q!0)W2<;m>O{U{{k$Hf7u(|sEfw*Ud4d#3dwF*6y_;UOOlyJLdBb!0T%etI0{ zn?|8{jOro$da5DLQ1qW+>mPgP&ug4c_4w|>QeY>0VZ{`Bu9z#%7cMn6$-p`t6NNLH zA0drIy5#Jhg-ahBfZ5DOW1t*pK}du~f^tJ%nG-Fz(|x~FvJn>KN#3N%HC3?9iQU#Z zv)Fi4FV`Ql&6#`qI~7)GOOn9RB)8`$#h1oi8a!6tcM1F~mi&&%MrhvTJ7$j_8 zT~l!6dGvJf(dCR>d5OYzUxT|?1sEIyaZ0JS>Al$vyY$1K9(6z^TG8T6{cfE7pDX+K zsCUF9_cw#yr@>8Q$Zo{H@p2GYj1=O1>s-lxnMb;Ar6 zRD``o2vz@dYt8NJ>F+19EaMD>1+!xY;0j^bLU+9zU{N4)r%2dD^6>k4o=8$P7km~; zmTjK#S|aZ~dNe72>`vtp%*wR$ zlT_FDIk*5H4Oat{9ggj%kG>eW8ecfxskG0cU_04y6blkKH+> znu}yCV>=*ex%gEn(&yS-ZLC@@kQHqkROCtyLFs+IeNy_9^6q!sa#XZLl1IC=t0^?ap;<%7X)(P@t@-N|f= z8mgQeo84xcxLx+!V~$D6gxj@VG=oebzK&4 zWbid&>K6057vfTsBlv5sGomKyCVXfUX0Ijno0ehEC#2sCBjH9^-cH^N5r?eq{4 zWsist?oh#Dh|wyKNAXxgxC1h5sat1}R}#Ea2_IPxi?~Y?nx&H-iOWrOY2;Ut0OIxd z&C>vdVcVMD!=d4V?S^B-^nxYUxi3H#bVux-uH|BSTUEi}(DIi&m% z(tW)1wUpV*x0dHiFYCqRC0x26U3j-3u-JvYc)!X~d|+NvP`gp;p))t6^8CF-Z#g?+mz2<8I>sUFj%#eC{1 z{%~fN%yZPC{}Q5f5bIrb*@qJw{xbWGHb?A-Q|9X34z)kCju6QF(L!T1Yxo<6ViNSM zDOPv=Tmstg2ZNr(cnnY-aP1^Jdheeu8n zg@yMbjWmWKz0HtT<>-uY%Nn&*#inqa9Guw6&8EPREUishHu;TAKwB|q!15+t-YcAi zo?HR1K#(K^Z0ls3EokIS5_69;*Uc^@E%_@1)>bevz>d3QK}b*PlIT3!I~I4&KrkP0 zi|HWdMg}&{(1^=r3j1+&;V|%SlNk4_qs982>XkPFR9lzMR9))}Z(FIvmL&wlq#>x3 z@a<~LWqt)dK}GQBX?Q`r!v07MabSC61%6g+P-K9B2!F&!ebF|@+(TboGko3s>l=YB zn@%%}!T5jb6A>Z2bi%VQuHF|hWIoLkB8tdUep<3Vlq=>B@64bU&eo5c>FSOVjXSG+!9KGf(Czs!bx#g zL9bR^43v~U4F3;*{@<298iY7FF?4-Vkq$XOV|9{1L~w;a(JR`@?wOymC=`X!c)H&Q zM5_7Tm6PdN2|Y;5`{I^iZfondUe@9{{3LC){uNYBLpJi{=+sl-Ih(URWh$7%WfUw? zMA$y|Ii>+qh4hEN_-ns?3O!8Rj&cL_cgH`7<|}RR-I)a*C%YI6XcIq32u%GD_IxWV zDwXTn*X%kYd8og1$nwHy-=ug-VVyfh(!-e-*TMwg0M7hTY^8iYb(JoZ-=O2YKY=9| zTaq>?shC0>FrwA0L1pm*7C=~kKs@3rMu%tvlW6oEl9Bgl0gNP?$PY#IxK4C$RDrp3 z_9}cfkgee}{wOFhHg=VNT1O&uh??U1imFL{*cV8CxAN(w&8*n_|7A_~28R`3CMaXgx+d`keAn@(rw56z%a{crp+ zfPKzyq{Y5HrH%&7QVvKj)3kffH}Q3qh^=wLg_PmGvcB{uRy5}s&+>7^O?hmX4XWBN z`6}ofFX|m{I4^tS^Zty8u%G5%K0t=?qSL_6fGF~9_B2lhXM`uW%#}$Ces=rYm z+rl+-C;up+7(5w(42*%dOR|8+n3vWQTXNHZ5hO+OwhKDqclOq=_Beb?vQiQ^LZ=wB zt*R`?`We<^3374>RA?p z>PZHJ>duI|PZK%Q)q;1L3s-yll{V86V=zn+{!cCs*p%K^~3C~HCxiQUJ7)z<0$c) z$(+cC8|Y!RJjNU~;a?owf4>4{OhjIRW-!5pOUTDNi8ESJL#8*|aO|MO?7^ZWefuVV zMZLkm9eKRMEF}#{`j{MlXrdnwUgF7_KBU8?({f)uPpBU>eb`u1mZUEXp;lWf@g(;- zuLF!Qg{4vPrAykweD>$^QX1SoJ1D#z_uJb@7CuDdFOoZ3BfBw4 zYe2#PkFa&rt(jOpKfKS)>@f)fi-`pD2jRH@40TpLc=?nyc!!N@ofhZAsgY(ajjNs; z;g|MT%r-GTF%28iXjHBQ_fkm=x7hUasO;}iaW3e zK8$U%SlL&REZl#zybwHl4gLsmk&TOOGUFfN|`S|8({up?gM;uh5 z?*$i~fX|=zODm{Sh}&BKDdymAL*;^w{W3-uM(pSTcbE>vHv^uS2CNkk`%Jwazv0z* zKx|sM`Qtq>wFRzPR=T@!IxRHJx9+jMH!*zKBm%mK1EE_Ab3YxPot&bOz2T|3>M~tk z!GnL74;43=&aNpGf*T0SGjpW{0t#5uIz$#uUU9N`_ z*O%nnvt9yS_vY5{cAC$Mi6v=qcGwl(xv^|h)WO;vjT^0<_hx^k?hiNiHj#}eq!_JS zUTkDQ2!}b$uXxUud7ctgz`_Sg2VpL5Hv;?e>!*u4C7wVzdR^gDtRQ}kRBtn$w~iY{ zPe2|Q)+M}k^TD)VsVF72Z8h#$%t}7fa!;sD54$cSJ#o;~w{VeoJYX69oBjFU#ANv3 zAsuBq!P~R*jG!l2<+e)H%5IjpVDt@e>>atM$k6O|K1 zSjw|#_y357OJj3-*Q z#^%UCt}%LNt8bSt4bK~}1hnRAtQBe`b7olgrU!VYNytGIoHq|Of@J!?7{V7VYn>-} z6X+W4M6G=`_fFSdxG(VkPS#T8-@Fb0HuBY2+XHWR!s2#yqZ)S8THxZJjn_9`K9?&R z>sKf3+4$4n5+JVxuZ>oL8xaYnlz$h1qk`sE!E?vD5=8R6aS{C`j1j@@-2e)H+A>S&sh}F5X7CSn;$pC z#F+?w$WkKmq-XJD3|FD=CbbY8?WyT?LcF^8j=o!3#tI~nTNyhNKGFB#f0d@yD!$j? z4rBxW%#Llz(V_bNWrHpJkCKt_(;5k2(;$lFtCAY~hu46wqWx;Hdw$N_1H6|$`fM|< zR!;ALCs(7CgbyEGdQ_s2LWik-AU+XCrg53QwAL(jZDXDZ?ACYidgr$@xE;OWov5$B zvN1{hG7SXyazJ(Cb;F2>w&k)Oo5};9+aKgRI5www4R(a+>owes+JEqV-~mNeeeI*N z9z+6RE}eCXOMfyyh??QKO^ubZIf-xR@_5i#fgNLq%^^sb3v?!YA*&U1S@on3>finJ z=mOVMg3bZJKB{e$gb=bXk}lmsElCft4^YNobUlZCVd?u_oo4>u{1A{0#91Xofhk^| zX%WiqH6DLq4vQ=2&g@R-&2AZnfSYER4V{3Xom3v~VnX&uJ)=&hG;O=OHq zo7s39lm*+v7wUa2_$Z+Ar~vTvcK$eZ2T02w@BGN7Z#y9xqPLK*#dVCtw=^i2aS{#} zj(a#<$rjDzSP5_BmT!3s9leZNK0J&Fp<$c93pYkr4jG;ugPY%c#S;E~;t!K*-E}5a z{Gl?J)wjrRq!6F7|FOipyv&TmAfLmokuPIs@W6h$!^P@{Jp8bQ(Z{)6szKh{EvAaRVZJRXp+$*| z$lvrm#Zic1_ks{GA+>NoT^e!(=9_)))750V172fh^VtA$$2Nw zXw+Dr3D6;Qlz%>fySd{i%$jHpRuE$&_~j3U>CxZxU$m4JGD`{Fn z=!G#K??zyOm@^}RX2O!7(8bQc2yH|g>75|h!6dEI`0B@PW9TRK(LR^)G^Xu+_Pm43 za3h&5)?7KvpD(Rs%#7ETl@cH+$~%Oc0pFcz(wQ_HjVu+Nl}XU4G--$&>b1umf86as zmVv)r&FXWm!)=WcB6;gyLcIAWnlFk^-z(_Fu+g-@>YnNW8@t@}3ki#k#-EQt=S=|2 zr3PJ&d9Ta{)EIHVIPBcOWVGYH<=41Siiq`cSG&pdhI45F)22AFnCC3DqSIgc&9fY#ottN0+ngq8OW*&STTi= zF1F~&!ozq+4Si1)?jGB=S<_`+eBd2UHlPr&rXVC4kd5_yqJQE<$sqYZ$im+PGQ2x8 z$~r2!*J6`##$T86D(#<4lYg|HtwNtYcx#9`$4yOoC!!$ku|9{+)>PNxC3qL*`uds{ z=~>U6Z+Xy&rEq(izJ@a+*3l%EdFY5U3fhD1qbg3Gc}DPQyCE5-eXx@d3n1Vy-J}lt zu(L|VR7vaUx&HGB4XtLQbr}eTpIZxiOGVI$0%t-#PX?PI${($p?knX`;MI?k<3UJs z4J7%tT#j|VVWR)`$!T_M4Hy*VaOc#4aFJNX2 zf|%_g*HXdXS(}GdiR&hchfmtX!J~K(-WO`>h7|Js&iy!P@;Jx1 z78NHYc#g3%x3D*v1O78-dC3co?h?i(|__tDxWZTrZa z4697!3zYHrQNv;d49m5dYBZfZ7|rA2=T*=J6wn{lUJRcK#Y-LmqMdho$NU^WC@f>C z;io!c%Yd}(z>XbL&A^_kKRQ^(u*DwYNoWg)ue_kPI08Lxv}Pm3z!Q`lMILs_()`dp z+PQBBn{E?Qrahmm^=sN`o(CTnkjan%+zY^nd$VV&4jc7#ohJl^%E$WY-KDJP^J zj&}#l7Vp~>d`{+Mreir+EDpG&ulIrbkvV#~?HN5(U%4Cc^wdWjsS$+lcG73<@+I6X zF9CYiDnS6vL!GL!{sh)4q5E6sh1VM8C+8VYf^eMeB2P;A$0i!ve+eBdTrC9ca>|iQ0_Wyv`%t&kkT_&LE)5{#bXCA;r9!vBeCpfpe<98 zTX*or)qaC#MbTXvglHW|5i+2$=pH6$dEX@Oil`rSC^%0H8wIaV4{5R0>p`Ad9)BdT zyCYTneS$c`Sz%CqyFi25us=t??tR>{pEms1aQOQIx-A6tyl}O96LQL9cX(W;kyi7> zW|Spp)H~cB&E++drR42SuwnYdx5IZc>2 z3N9@E3^5T-B%4L~*AwQS*Kpu>hZQZTcke+U@tww zy?TYuK97`dPM7RiIbX{&R@0`mpBujrK3?^`&jm#nF?_HP_VQ-ZZ#qj<>&XUQOW)iX zc(3oSok#M8U~XMN26??tFsDEK>KRAhS2=Xc&hm-9&@TsqWV z>!SQNn;v4R_n8Vx_){?u`qcAKGZ$+Q>O`BPZiksG zu!}h>vaPK8BfsM#NmHQ#c4!6-PLk^=Sr=1hc~tGi0ncgVwQ<|XgT_5a<9T{UqY3Nj zd=!yu`uXhU_CZ0!gx!(X*6Gjo3QQUw{z4BB)O!whzxD;DV|O%Ln86NrOvgECJB~Fty%E&$Km_tlt9=H?;2q89wd1b79@}dT;{zkLSE7fE`g4m??il6We=cgslL7zZaCj+8N zqZ+oTAiZJY9-GxrAt3p@ONYn zX;ZvlP^ZCNRLJjHK|J)D<%hG_T1^^cp~E8YIimudpkbrXffdM2lD#(;ZvGX;X;D^R zU~WXqk$|+=3b>m1K!-8H(QTfNJrn{JINoxYp(Oa`{^t)x&)-`-shNMW$G=3vpAh|h(%??5I*yN$k*M$tKp6)W zc&?VZGx%1VRSr43|E*i4ScSPKBopQM65NWOx6G~Ka%$~InUvw;3jC~0z|I~4zE{lgs$Yvg6v07fwLFG5sc?)^0(yF*;IJN>mezE7#50zZ+&>>C zkC=Sb+WCdxdYAL4Z9$xgvyXF0fvN^xW(D{k7ld!&ZK_Fvo%jgAg5Fct@V~*ZnaMA5 zeb6Gjxq?(WK6>=Eti!7|AR(@5xuU{CZKKC;_6gONeHYdS=`*H6xA~?g4PqKTyqSPI zyNyQ28RJUWL;HJzp(5=H?RquFZNN@o&(Y=Xv%o9z9RdBbWB517cKX*zT8tz)#*GTr z8BToORnJa^?0Zo_nlIO8IL7M(gfj7NFQjb_f)sYgAM=%c;NXG{fy-{0_ex?W$I>vg zX36EqwD~R&DDbewC?u>WO)(9H-&+Ji4Mzi}%tV`fVGleB zoFzsX_V<*4V@U*#mL1vKz0@u{=-3RuenU0)4m+r9adNQ+>kTIs6B%N#?=d>&f5j9w z-};R=hM_+H`=HCeA`e+|zWSQX6X4zKoxjhvryt>z&OF-TFR=^#Y6a^93z;R!Hb^FR zwn&(*&&?pO;*ceL^$A!KZaL*7dFQYfVD98QygV8$YF*4RN#V9abEh&6hMjRd1*Cq_SV3noG6#IkH@O zyoUfc(IVed)E})i=#}|jeAqzEKM%X*2D^J|LPiNDS>qzUYkNEC=KJ)FhZu_jhlS2O zpg`*fIW*_?X$#N~{{azr}*${{M4+9bG5IKZ%s-ap% z{KFw(^16i@dyjEO>CuGYJT1L>*GiTQm0g$gO0Ior*Y*@U8P&)|ja_i>MUAoi)liQR zA(IwqO`wEx*BnyAa9!-=26C1;&wf-7Z=U?an?-jW^OCo2r-!eugldnUnXl-5?wlJ+ z(vmfrCtwZ}G#;$>&gYk3G#z{=@Ob+gj}}^c?`@pr>6{AK48cUNg^#Edg?)>03`;y2 zuh8;zf4Z?$v1v|lsozbN!F}nNZ9vWU{rtG+?zpduFs9v> zfL-ld-lVE>P0d6>j_G9u+MM3eomril1U42nz5qev@m)K|2eL65t4W&fdnBVwIv+A#0o(}5%+q!q0VM)_ z1qsDb3MbYEiW=Y229Bi_z|@0Rem%g<%glUkKMqsva<56F#7A#}gI}e^Q};}w)py0n z0^AFx1aG_8bfa=2Ay$%Dsh}nrn;;TB|LlwN_5Z%4CsDKIC6z=a^q{gKgg>Kh{g)S! zFtKNtxbl`t=v!Uv2+Ys?u7!_qy6ateOE?{;B@EqV-a2rrvk;!rKgL#&b6Jp~Cay5O z{sd}}5gI(JN$JV-z?UQQlLj0ZCVo&M^P=;|z{whC!K@V2qm5HeWCCL;XehTUo9C)| z^6A6?>RrR1TUuIW;H_#oDu(-b9w{(QI7FHSc4g;=HZKA4^yc)N&Eg~@#h>4{-u&vs z<|6M~ez>1#)lEoqigeonyF8p{2oOYt6wp0NO-SNSCxkWAC1!!na1sac7oC2){y>%4 zJ&=yfs;e&2QQ@{-%CD86uoX`&@a+dNg86RaTJqiuv+!s)M_*|V_;p-CsoSYutd@t`L*2 z*+92i;`oxvKZ)*IkxVNw+N6>)PoZk$sf!+*v4jHb(1yM4wb>mpyM82e<^+55tE_m+ zz1XRB+&C1Z958+jf-3OvrPrtqloNG@6$i|bu%4KbbQ0AZ&K5J?dI=xQQr^#X(vi9P zM zlk}1k>4;MYad3{Dd!g#IJ(&$*sR2HtaUp9+l!VIBXK_~gYp7Uu!kO|c)?SfbHVXR{ z$$9x)*3aCyeCJ?F5^EZ!z)1=D{b*poTu5*@u31!4m@2uN^$fCu;$i#ONdExgfaxD7 zq&8SPdJND=CuTNekU9&ezIs*vsc6=#IrJyEdC;$e0N9*?j(x3}+pZ`eD)PYGH)`@b zO)i<9vdM{T#pNy;ji%^UQt1H2k`&XFQq`e+mcBxALy3J_a$|XBeykx0W&1oURI6eJ zpOPjtEK-=6{fg%Wt`rNu8a=O1)y0BMUvuRu<{bT|XSU_e+o$t9bCV=~Mevf5*$<(v+W(#MO7HNJXQ}y2USf#N7<^+Ult-0b+etMh$xv{iX+F zfupqfSIJ{pNN00a7b(Lliz9gC5*bGAbgusT;;*CJ-$I|CmuPEwAv_x{dq+DYs9>Qrg#vV^V&=r z*TaAksk;(A+r><{7Zq2;jZ$m?AGT=g|Q`J2HG}x+i z$o04Lz$(E{AZk5~)h?YEWF6`k_bj=`gCsl^%t3+%S*aOtzQHfjh|mCG5+$l6hXYy< zBCnURl@kp6D%)xcG7Rb#TMd`wxtDo(fx=zBa~+>Ch^z!aU4ok8x2h- zN7oG38%>t@-6L#fGHd~I?urnfwdYpa@+cwHkGMRoC53uRjKSH4`~l^M{*|tGTxFj7 z1WK{FIQ(v^BvVx%jp}4p&qv}6APD|V0fuyBz zplGhSTRD=htG%~W7zT1pAe zRM^ULBEL#gw@en_)F$CIzV*h+tv+>STQJ!0g?rhLRBq5I_p%qn^G@vrM@zQzhf7;Q z=LNVY$iZ5GtC$<#g6tW7!6iT=ibbz$Tb=` z47tm5y!8xgfTz7)?kklL$_j>N)G`2j?h4W-)M@T8PCq_7T7V$Gt^HOB+c9}p}(^;leDj=g&91~yivd>En{rRtaWugLxWc5)} z+X1m>k?aeB;)~-_oMe7TBU^Y$U6$4Y1UyFv5sZ=$LE`kh7>Ck`Cl#|dRJ@csd-t<5 z-X_7K6$6yWsULKdj1&AAkpu3oWG+=TzUb(PqZ$So!KKym4<`}x;<<_kvstzmLVxcC z?@TlirWYHB0;e=INkRxk1jN;}T1(vYvJ_ML)V^6IJb&>!_1&0*VzKELerNPx^R$w| zWU)jcTxp?A99PWwf_w}(BeFEg%lVOe<(aa-rh47@wcBr})2WzG$Y#TNC7H(x^vKBr zAt_(cTcjM`a}E!MPQ{t9Skq{)!hNV9RHrv0*8unZAIc6o0|gA>OMbcjdQXk{l60eo~0?$R&~8JIP4`~y5BmR zfacXr`^`L%9MS6KaEIDz!K;gx?cNxn#cdLHxvwa{N*I(CZMz2M~4{ zE4=*m*0Bq~t4oMSwjSOQS;oq9^%}5}LH*LdirdrKdUBFYXy`Ec%xmwP2w2}_kCTJs zFHhe8$quh^60=@1Ff!5?0PX&NpX0MNpb2;ThG@jW;1)I^D-uM7ok ztiCFT3~(n`w4%$`ee2qu`t&`xiCd*}8B94yyR!9NOIrXJ&5-5xb0Wlt30r)S%FO4Z z0Z|Hf_QyWJGfV=KXmFQqrDCU0Dy)5rYVf<4GY{$ur0H4v@$9KdgRLtGprB0Ry#C*%|JT8(jAeVqfRT z0Ny=^EyMY|cBu|SU0Y}~_nnQuGXR56&5tpseg2+rZqnH*_VmXMA>(4DO}5Fn4a{-w z0hy*Em@09%mj~cwO$IT<r>7hsu$_ut$l$yqOSk8X4p3&->TzM zBB2}Ba%&gGLm0VCSO)NOE?ZXgzi=AtjXTexM3xF=acPrveRLYt|HX;Zyv$Oho7cB| zeWGUz?g}z0?26`V*@-8IN8O^RTL3)mcuhYjd%GG@qis&^=)J>( ze1&0>#J@H#Gi1E>(P}SzCZg2U65Yb@?XwXdvo?fbk7o{=Zm394Nl9rLsz7e96^)jG@q{T+N56^u zCkfR?3^$dLxNp0wy0$90iNp5LEai);v7@D>ay&qzdOVm&8<|B{`Luo=OA1Njgdulp zpPdf~iqrH?EdonsMy5qFHTyo{34Uy_&&zFoqAWSKujIosa;s>i_3_S=N_DDN4QbM0 zF=7=gF?Cb1{lH?qxlHxp)SFU!mqtL1Rd2!9;66(Drk18+?A}Lj_i1zDTh+>==Z2Nd zGSgs^$hy}yvmp!exNfqM`#xQaX;4V#t~vTxwQX*EnPWh3(`j_lIA}b=U~P=@GMGVe!kUSdS=ST^e~F;_=7C3_d0kL>dG^uS6=t z4!RG%@$0D?>e5VxwxB@zy0O6{69P0U;iXsB>QsnHCC9@> z;~7SZ=r27IT5DaROqch`tJ*~uB!zw&F8~wrPkM!~j6cWUg~kj1=rylpuu)O^O%ZTM z7U6N(&Ab9Q^nO#YCI~QQ2G6^{rYHCM_Rv09BcPb(Wu5HUCv6V3!?Zh5Xub@E24rsd zRZeG%L;aa-wX)@tnS&>=={r!c;yOQkjQt&SF3gR5xl2D21{>dAku&sTiG;htbx@Io zq0?ki5{ECgoQ?sy*X|!WX^2I%)B9Bb5+kr~5#eE07%=!%h5+4qX6ejvdyZ)8qdo~q zcjQ}bVe1}9o9+JeAl*y9e$6^D-2Bj|m7@0h&0pbeQtR!KHdoNht!`-qG&?2qnAXsv zdcgudvs}hN$+Kv7idwyBH3K!ae1=c=D_G*wrAhfbwj?D6-g_!kLWi_U&J#oJZ$7Z6 z>v&JtBjLVqW+A>JDlXd@sWBNk`RtKWA&gTsqsw~0qUVem@JbsMVIb_)SkGEMw&5q- z$kh?V{>{y3rJv^`UsN))u9m9d=YSGqi}Kr)P?ftI#_KRV2%hmYkuLQyg-0Y$t~1|x z4ygstHU5-Of9DT|2h79yg5+{NxMGIbd35GHlxzK&1Wgx5G{b!L`D1hzP)w-Z$`vaY zu7$NQ(P-%NMmf+iDDH5Izw=Wp$TaZB@GWeQS{~w1DOhR`YT!0W*`KRRS$c8QQ{?CS z_J#6^ib!kiRk1MgoJ+9VwTmI82fMJF)k+k{o9y^aUH$RhP3mx3j_9t@AP8s!(Io5@ z<($+H(jN>G>T=S#zXeOAqBE{~qD8AjgTBfQt7V(xUFAmnP=fonYZxaSUEh z@}NH}v>O$P-a|sg_|lgAYG3iatC}jv3how#^|fT7^22JaqH`P%*s5>*hiqPRv4EC4y5~f{lb)@8 zfPaC72jY5^AVYZEK$A!zP%@0hjLtbsNkwKT)rv;jFrJBqN$EqgK83{F5cACfN-N{O zn#}9!l<&OeZkxL}3o!$rgXk(Y4y}0Hl*hn#w*zmrDlZHNn*);;o!)m}kyFJEbGC?d zGS+W!DFIhn{F4^hNhfE#B@X`NWTBuZ5Kh(GkIqM=D96If`sOjl@^}?au@WNG+I2l( zrNAc~KO`)1YToZwy1DbnYCIlM=Er&{JS^YexgBisJZ=!!>WnV`I@pi$})sBN{ z+9J-mHo!5o>-*fqmQO`1k)Tc1gKZc4D@jgLZYKjd180Kq-RZo7+Vx83Lm34je%^-( zt?mF;Aye<`-`iwdCTH7E_YZO;uswD3~$&?XiI?l-!Wtk@z&BGzFc{A*rTi13$J-RRHp}vaan_KET&Nt z&xHt2x1l-Hv-MTEO?%oVidiP=>{H$Gd^u5wUeo$_p|cD2UQW)BgjAmE@AX^qKC%_W zYZp>Bpzf!Of76>cn0-sZ*b#sHy>5pDCxus>sGvYqP09O?IrDa{=R25ECZNpH_}%W{ z8!lbV4NQV*JMr&J^$~208qc*H;04FMe*)T|E}KCLt4_}wjIv|C*Xw#ad2~^{%SkWT zr)TvVUK$S&NPh_zz6zG7Kx8+(59yIumrU@ep3SX$L@vG2?>9P@ohfcY%4+EBgIeBB zmQfObKERDcXu-5te5#r#k@(dD;TR~_j0_Tm_qJdR)Xmy!LHDp^{wEehli9U))GTok zTJ0a0{gVMVlR5L{MWc@8J=#OM5^kIL5tyqQ99ii)dbAP3L{`sZKGyZ{0YoZ~ok0v9Z#$}zEt-0-jt2uw$ z`FY!Y(v zp{K>`A;FpyD|H?h&xe&K6QAo<)fMtOPuc08a;q=3PRI%2@pu&H>v~co3hcl2THq1; zH7Z;;UEc1sp98ihrDBywyUDe`g)-g7I@LD7f89v@b={%ttw8sGY&TABL@R3*bK7dW z0f+PeREt2tW_Sj5w&njKb~Je)Zqt=h12Mcv=hN6>jnzN_+-A+teK)^vZ@erpYP47K zL+@v`1rvD*bA8YC@QP1H>qugqm%pT^AB{hqWlczo6}1pgLqOv>AN(iUy6OUr!)F!*dqs`0ZkjQt#R69R&@4NEo#`bNfKXKp2A*-ROo$I z6&0Ff>7NMFSeI9U##Rc4=yuWELsXTDdDnS~oFkMhDgHLMN?mY^g z2JXE6i0t}`lT5vU%a5oXL(C*UDtZk}rCpc9E>c_PwH{Sen8m?e|9#+c2H87uwPRs| zxVXvXdHo)l%0e2JJBzJC9ebfFi51q-gu<9ZGI~4{d-vf-1{$h<-yN?PueR0yA75`3 z7FU#Ri()~7yE_Sl;2zv1cpwBPxVyW%yF0<%CAho0dw{~BkfPvJx_f`;boajZ73!;( znscr35Bv2aYf>2IUhXcI#FB9E1EV&0wAe`>hB^<;1m~O!p3UlQJ4i|oUaxj!5hP=7 z+_Y(5E7x)2%?_t-H-|RrCyoeo11o&B>au2HNyce!kIlKHrK9IPjn-B)xC-CMmW#iC z9x*C2#Q_n8eWx`Z`E&Sy=??8qpTqlV2I17ULizxv5CTmvq3nnu%T~2Y)_8N^lR~Cl zWAd?TzDeNoSBIQXaKxfr?5lpJ*>bUUsgF*Ox91%mgx|xqkQ`ano913iY81T2>I)i`PNK%l(JeTmDG^$Vi$3^&mL6VX!Vp2*a8UsGi&%gb5_&t_s?q{rH-83$X4sTE8TacE-^(41>dh4EW@mCVp0zY&`nC7%| z2EqGJ@;Q)sMj3Q#`A58iD}?mRbabL04vM+ZKcA{w52li{Mye(Xo*<%-ky zN2bOI@uMl9kxEnTh@j7xwg!P`2o^c2fs0(xDmsudAWwuR!e^=l_eHMBswE>?&S>L? z+dHZO;dcEdu9_|sc>xuEX>q>SJR~5(?YDsjMZ5|2Bk$Yfx`&zF8w{_Ho)Np(%X%o{ zEJ`LCPNJg+V#sPIrCb(T%A;!&%S;vfBsg74(y_Vb9#(O_z+730SO1caR$4d~Z()i?bEvUDr!s}9!|U{wkiLqAe9W#l zvsQuCODK*s`er{^D?k~4o&w{_*dXd#S0f~~`E@*L>BYu8BNv1$Dbk_e( zKmFGQTEK=8=KXxzma})}*n&i%)YMoxL75%S=G!XGbGGs6Bd===62Eo@S?&FqL+*dr z2F%J3DV|Ws1w02N_#P05Vbp&D*(X>w#F0tv=xqz~9ao|tz5xoZeQQil-{KaN4lQnF z&l6nTZY9(XJzq+{#v(k&@4;)<3Fimbw8pW-_53tbf{M$q^=e+v#O)L3gTX z9TnK(pxUs(_zA~0v$}1Wg~qa;VVcO~YYrkEsYs#{)nKJ?~i}$Yfh& zM$SvV`|j0cK{XOoELffWWpF}(+I3Ux88s4m{|Y~1yoQ`eOj`R7IxP*q>YGpQsk(Pd zzclHf#31xU|DK!ETEmbBg+|Het@bO6HfC=hhtUYm3XY)W4#puC!vIthA&&+KVPyDw-vg@KCaKd zEnQ&7qc|#^u2g#qds>s$R~{n9W`TNBbAWLzyZ6(cKJZl7dvy?}sFV5Q73+SZxd2G+ z(o$?FMo_rBWWT9>|Jrx)^J`;B>HPq;;>^-BAc`B6W=#+>HWM)&Ki(BQPZzZe=johp zZMIv|$N5jH-|HlQ{H!{xhzKG;bS0n8t*E-?q3|ootg#$sN+>Of>F=Ds+vbxx?=saS zFSlNBIR<72<)R#)kCrN^$3o7dCLB!k>APYHimAx|Z)*z#Zn+>*oX80S->Ivo``Xj* zP6!Qo|JPuSC`CaHT@{`bCG-cs+F$ZA5xA_K;^? zMl&+0?YN(*YPOjL$ycWG1L5>tQKsv6^ddN|(DhMCi^HP_BO3*sCv5S)sVt4c4kLA# zGRvn_8%A$vt$^W+h?&whF6MvS8dpZUNNcf2%!GHoRTtwXtD8PtP{&b};6b#wbB9b! z3OEWW%mk4v$H@^R5mD5|q99I8>%S-10=rFmk=lFiJGj8N>}(_u0=FJ{c>s{kxu-Rl@0_a%yXFf0PEtVY3vJm zf-UfQ2gZr#85&#_GV`#fXZDIgmuwJ|?qWYbK_PZe0q*#Kjv{|il`SMR0X)HuNsjOR zkn+Loazy2=@4cD)r+mvuT(n~4IL#>`eLnF!^>5mh zY1h4?qACBOLVkyQ<*I^wj^KG2Kw?X97{2 zdB!2+d_xrCP^aQ|5gJo0DzK*9^FMdd{%vN5qK?Cckrqat^jQ)gHMPsL`lpl5gE;1$70_0vG!W>e?|8HI+N=1R3tHNGr?#&U)z)q_}(dnuoVFX21lhUyhu zTV9$3nzTKuSHnASm|H-Qk&r6nhaRZXeKJtG1?# zLXAz^ai!}Z`pGx3@&{nuvbNRhano@>S3#ENQC4h}VfCv$h1Mb`wyzZ>C4D1Cog8Tq zh%QE7tL*xV(;4n^*$-t+U59bo$%>2Ls~f-XJr`B-I$icXuD7}M*rqb?WUt`NNNV%=7lcij(B0&=$G(kPg?8t&jTN}6f@sC+j5CQwFOzZAl#IB4LK7j((+$$ z_OhGbonFYy`w2MvGR=OvuZh0lNN&x-gUW`TDzR>y<>%O z7N^ja^5pt~Q7fcnpJGfK%PCig`T`h7d+aZ>$)!k_EXu@tvDY-zP_yB7@0Wi6IbEqQ zc8SBV=_-QUoM}g%c4C7Ss;dd}6Vqe1pQh~AdP9(npU^myznG_A!uM(`NTwc}fO>(;QZd`e(6sD{(MO+49`xv`}NEj>yoLKdc{}lcYh3M=`^Z z7Qv+BM93%OYvOVfe{L5<<*pGy?B>0%u~LyA;8_O>e2A5ays(QK98dLOQJsFJ6cE6AhwQy`I65pBed z_dn+($U}h8KO!RHW`c-+Ee)cmviXDvk?|8mA{e#(zhl@x45PxEm^}|m5?B3b#N1C^ z>5e0&1%C&sW$%=bYp77saUv6woMg;WJvhl&G66ypx?BNI7kBWKs`@2Ffy6xuc*;?k zKuhMaELg6I4cY8#Coge+N%F@trM!5X~$8L_US3_J;!SO@6Av->PvkjT^ zwr01s2BK-QELGa?`HL+{qLPS}`5U4tWxjzlA4px?)R#xvOe=M;Yr{LQEre4PcBV;8 z)hgvm#%{91gbjb2ew{StXO3}kxr|YZW%Y~$G$MEm`gp@^W-QvX*1+wDjV0D}VA_2+}fqg&j{0>Ck z9Pyz-Ey7h0Jd*}q#Luy*_9tO6xbz!M@_ikAu^6QSwFVB!Qb|$8V{G?1TWuF-^H}%I zI`C0zH>!)Wy1T=d!3A={Zq@)w=z$pW6T%bW#>|tC}rJ3i$n7 z+b%5f2@peVS3jlU^h&4XKIu?)iUr^~*WSXY%zkhCQHnJ84|O7W7P?vpW~)l~{WZt} zWA6O+(3Y?pJez#e_3LylOP`I%Qq}pVv5garRB7$`Qkwh;H$HgbdDHt@V6VMnMZRCjNb=&%{QlNkU&6dZ(2EU>RT6B-!Qi)0#+g z@#5KXc<|?xu-jO{)r+k*%g&&?%)J##6c*HZt8%32xQPIfwf28%lk~PLs52rk8V07iAt=0x#e3+puM&&>2RHK zZyEiy$I^cAJ*(+1%=A$17e)*zQaDplufGB>ck1?Hdgzx`bnuPn{hQkpCmzghGms0ePn3retn@v6P)BsS(#5DTRP!}^|26(@CKod}DeMP* zxuTLdQHuGIBvnI#a7Y5&_K7mU3e*_sC{6nzhCl3|Da z>tnv?>=$OAIJkoaROd82q}VT**I8{>Qh|U)(hXm{=jkR2ST0Z}>b{?+jEmQfJ2LY?n?7ujAW!lncRJ}#Hy~>(%SX{lBO~-b0M-y$F~Y7iF_}M&c?;3_ zOOsr0eJ)}1SBfgyv-&`WU}Z21lwicTi=^ULwA)hW2W{XGcQKcRD7q9THDgpPezdcd zx70+fnW;N9>l#JEO15l1^oq`LzwJM`8#`fZjwa^T><>kM*n^v6ZSEA5ALRTeiWByL z`zk9tz7wtE@s7-V0a2APhlNo0d2E3q-Kn^s*ZMyupgb1DpC9!n=%Nl9i0&=1X>u7E zKVJ%z{{GFvzF33*l8^Z)B4myA(h&#oTLcF2$&>gi7fMe0#rBW?BuvbU4s|Ypg0^-r z)JthQ(8Bb6gl3#rv-D*Y|D6-NMh+MmYVV(cL&0>;$NO7Wrw&Zd6ekQll;V zmEYRXaO7dT4Qte4(bbfjs}jGCTMxTV;}Y3$6^pr8IvP=rQ{twOj?glIaCa}3ztrqt zB}i;ln+Oe>A}hHUjCGk#0Jp_HzUgV=-Y;=D!4OV6rfl?d&lnQUR(h=sk4yEalxvY3 z6v8%_c=pbbs^t-6w2i?!vthybb)85f8+hvDg!8!RJz=+)R^WywbAOB`Vuecp)%xbi2Ul zE33SV!&QJ*n{3?NBDts;9)vzicP9qcM&Z9NZrrVCoXuV&%7Rk_W zYTy|TZCK%?tO=DiS!*`zn0Up_Lca{u@5)S*3)XDAI3{Rz?RD$P=b}#7CR)CQATzi4x#3Y@flq5%-sK4G12>jo_R<|^9kc1g-$uax z+Rye8+Pt7MW>mL46G?5QU2^W1UW@Np9=-SVoqQXJIYs=yR{CU3glG?ZgPT9-DPgV0?J`aaq1KnQ-rd3ZZAIlEbZ zWv&&9+X+69Nh_pygh=|Ojk{!Z+pW@|s{t{zmJ7F+Ug65H#kelmxo31@VJs4UJG!}N z7Q=N#1^&<9vh;83q98;<1~<(8%Zd6e{B$=j&(E#*XorSqstC)xn;zG(;~os|ybrH- z)x$Fm_Ka_C6N3~1Hu>I?!9?50OH$#@IntM(8n135xX}x>sT?E{DWFVQxNm}an;aV=J;GIG zwViYnQD6tT*A|48hQ>+dHDa;CI@(r0*nh{git`~%=BWw}$`X*r*n&1IP^#%s_fg7R zZ}PjB$p6tFs)r#4G)tUK3CfqG`X(z#m`5BV_mv*k!J{_@u9F=a@P#@>0G^YmqWNRX z+0ImwbAFi&+zck>AmAgLqPchi3jpCW4C(m5d7K!Ql3TY~Kkde<;o!aXaC8cI*@2(# z>dSi+j~en{`c^n9$}MFYgPkZ*VjxC}?fvyR0X25`lkdmVZkd?P8j(55euFU$*2~8N$a+ z4{_t(5PD5%qmfgl;*ya9M-VyqVVJ@Tf;(g38XcS~XB++hsNNlGHQHI! z{MKCYmgUs&b^b!KLJXyPwL^Z68vFCbzLrTWR}&txpqFrePYVXN46sGRU}6R zMwNfX^gXr5^aNGy{Dl2Fu_&^q0UOehTU-((IqqhQ%oCZ_>dc0PV?PR=Z@ay^fG9Uw`duoCeJ|nW2(gAz)``ar4 z&22DBSqddj5UcyqNGNofviz+wxurJo6!Lca{u6SE8g3HTUd-FmG~AK0pKn>NC8_01nPQB z2mOPu$NJ?&x})Gn+Y7U!Q`M1Hm-T5M>n7{PHI<^{V0KC!6#*v2RZAtiRwpDAu>^Ebpxj>$g)z{Ys1)T$zbk>XXvVI-`8@!$_+vEd-w*45|1w~p1U zmOqwrW9@#JVlEAr;6(t+$9)_ME&1o;%`cnX^-L52FbM+atFBS!(}<~~ zIHPXpFTmKFFF7*In`x4~VjnI?-&?Qvk*+u6zjZ#@oGnRRaK2r?B*xdI^6H&o@jvSd zy}PVCCUY)uJ}Z1csK$>YsS@1^oUhsm3PfuFZOzWNpH5{?jy%ZbHeiidq*tMk^Q&%g zzdXFL3U@_jxL=O2?!#eB!>Evw`M0X!Gq6&xXaCqXTRhf9WGJtDk0MR|^ElBfzm6$v z-vI7?AQblW`#@?>{eR~1%&ZVsn2_8|hb4T&md&@!eBTz0>7Qq)OIWBC!pNPDw5c-0 zRRd3`YY$#TB%Kt6nb$i)+vl}x`N+8O`PEf1)4`3u(Z4# z(K|xoE}XCeDaWPHWbQEWvM-Hj8vO`j>UL{(Ol;!o&Hk5i8SCZl0{`>Bf8AK&Kq|lVXzW-L=pie^@%=fjLBzQ43-8U|h9 zr8-fHTs(C2qc0iWQ2Besej-OdX)@=i<(g%PVXxhD0=O9W;e`6(h-e)BDp`0qX11y^ zw?)SUhbub$B@oU_;%6P2U-9!fm=@F4i9mti&W{AY`BB)YgGA_+u;$tlBG2?-v-{m-&`zvUq8GrAyYH3^SjsB}L&+_DG+~(R^eg)blDK zi+I<56j$x$?C7ySCj(2vg8|pN@YZixRr(6ng2Q8pP4qSrIUATXpf>z5Qly55VP}BI z{`tG<-|< z*D!4^RC{eTDI@;mSt&<6>NnfXphCN8pHpx=EM2Z6jnjU;!atjT=NKKTn`0q-RMu!I zzPAKnjMsz&&b2)cs{2QX+v9_QX!nN)7~*GYUB}5ZgLERT{&UT)fKh>^oqnkzdte+< z`98W~Pp5z(Q0kOIJJWDPpZ<4T3Yl0KOqfC4j`H~)A`RY++TQw`^;a4}j;yAOg)VOs zQs+Y(&(t}Qy~7T&#^Nq;xjkf-HvKI`u?qlDE7nd6Jsa^|7$Gm!-U_`f{M5vK%2~%` z4*(w&H2}b&m&Q5|%UaP-k=@Ea^4jrxy>qs`4xGlDtM;UZb8X03O{{L16$LH!ULO*p zq+48D$o8_RV_KN`&b2?k563(Y@Dv*N?%DKn>+U?E{h=YmyNhD~=J>{`=W|JF2tJy4 zV2C#u8=WBX5_mq|q^ z`qtzSz~uYc9r-qo(>A!_`LCW{SRRi}56yjIpF=ij>T`Ns?-D65WN`Ri zNn0%z%dh{s@XbyUp)^GKLb003Rvw(GRGhpmi@8EKe_5_@#2dkrkTHG%E#%ppsdB~a z?Ul!F}xgmDY<7 zLI?K^oD_@M4dPJTgkljBour%A?4tBRo z5`0cglwMl8f_P^JW~tnJc%Zxai=vfF9?=tnpRN%WaGSUl;K6mede#GaUJ3)`a-?1I zSzZ~^+Ft49SZgtzd}278J{8<1sH+kSf71fCrSK+YD&x=8Xq*dzE&Z5&6DEnf4L>gh zL|RkmLOqWZ#tF>3-@1X}T!Y;a>2<_Eb$4=m&hcJ{U78E9eCC?ipP(3MPTnD@)T55c zQ^5zpiW7MJhUr=ay{YoW*e$Tf&Z9}{=`d${rUiYRiI7mC{L zGH--g1jJ7ru<5a3_R3)6xr(wX+|SFZ5xn*GrHMr(LuSccxG2^&`N_+nLN zydHDDclIkX$~lu8i3SG`ny`@o(JM?jH6|Nyk=-7K7AId_hUe9(bH8a(S8CAaf7XBB zY&(xv?XG=yu_h12I(M;FCmXp1YhF`D>Eo9gQWE8jpqro;ia_9x=LeO;9OM|xZdT?+ z6cV?S@ozWuuh0K|6qJ$IwU1^^PxY$K6ygqf;1%Ty4Tn*^#?)0EG__I<;s~>1GGU$` zypER!;VJyF7JT38BZb06w+eRk8noM~`>iokyw5HK-%tok{dnjtZ; zDbHU2?c(@*lsA{c?h`78iwhRyCcs-=sAtOy9V*SzR3CXq63X;=dY}9DVwrFE7nY}ctUrfmxeohgiP{i z(5-LsLlY(%FvFLwE*3-5ZZ%X$KUr${OPSh;F^Xu?dl(bZW-H*RnxfA{*ic7R4N%8s zbg{|~dfif0e>KjMIoowTNBA3vzO@Sa^5eiRk?Bj$DF^V35RlTAxoxK64I~ViE8NMf zNWb9(o>!({1&14Jmj+5;InNE`J;918rdFpC$KIVca}tO3a-hz(NZHPocrtt5*?HU0 z!W`?Jtm9&EIaMuiN}7WV?S4Apo$UHqJ|K#o*q2@ssG>NS8y1&S{(`;QrOJ(TwrNij zslae_pXPJ*K=*y~abQX_Ll6%UfIl}uCvL28tP+j|!dD4za-Xb~N3The>!Rpp?l|S* zJO=qwSeznr1FBcM<7(VivU@<^~;#dR5GPc6rMe#fj4n(evspOncP5ouTHGa8n|X*(=>}hupmuz|AW2)eLHfQ6 za$6K2hRBy{Bb0DT`dL`8Onn%C$wii)f)qnR+oHWZ{854`Oz74x#k;CTnIAE8BJMx_ zq?S3BTHnOW7eg{xqhyv5@kXx%zwOmimt9co^V=t!3xFT)hk}>S7%!-632fV)$GkEu_`f4mJM0%;#!o0!i-9bMt)^? zT$khv+C5l~M81 zX#H<02dHM$XMSM_HmVj&^f+bSP4baS;Cwl<=0qFP;nUw1nSg$aH+~B}>(JE#28=-d zpvy|`V}gx_z(0v2?0@?Er$`@$vBLbVvrWCk zNN?|o93F+%I;pgSe?3$KFH1+wytdo=mZH={oUHsSVtxz&>vw>k(pM9do;LzN# z!D94Z4165o&!vWp3?oXNrH&ei=IZcLhtaeXiZOaqO3h!&7Wl+I-D#g886wU)h;>6Vmv?E0QWQ+W033^i zWKLly!_|wDiiavK>K;ss2^RQ~GNu zGMv%tP~;BTO(5FSzQ-{&RA@hSqVwjT0|D&%TuOac2X6^E@lP~9J8y1br0Z^Z+LNlk znpyFh6s?m1f!22)z=2(FcKnl(U8SA#hCO1BHb{}sp)4OYVS(mVD?SB>$PgyOuB}v((>iH#LPCT;ySL76>ydO2+AoZ;XfWwkjIt( zvuK{}b{G3jAfTS*O`1zK%Q1&yP9qI%9Fj)JL!z`(pkI2#ev8k3^v&kwq|%ZW#Fi7h z&Ht8X)6tCC-ScV23lQ?pZ_T?xv|6=5qG6nQI0?@67x-6ndVv-u?Rw(JSb0iH@;#ZV z?nNSZITOhMz2XC*LgD+QKz+CyaVYjwN=g{uQxSxg0}+xaENa>n!qnw%$Fqz5g<~|Pe@pBN z;30P0r?7te;E7o#{K5Mth4@y!W^$P|6(~>c9@^3l5!o$-bZcpsVAO~>{e5Ww!ro?! zcX=o8@Klt4ZGPH|5g{kj>JWfK82)NF#!$Tv&~H@w*}K(EUvG#)-vNn@=O~2*g0PB0 zTaPR*b&)edEq=QY?fSi7DODRZgLekQ^4mPclSiA|$&=h*SpCqQZIvoDQQq%TS#_~! zRI|?fo~&29da%p4j9r=2m2Girbah@h%Tf@?)LsvqW0lW?qt90QN#puFsgaxT!d^$lb2IH`-9e*F|=k?k*Scod)oh4(9?_&a?*Z)b` zBVz6(vPNGO*h&8{Kx2k4q! zhIDr7MZR`0W60*QFL~~enVlGaH?HE@ z3mPQ*n5x%Q|4Xdz%=Q2=C~lg_eSm}v0{V=^pahS_*#=Q4@{*0`t;hC{mXRB;s`C4( zOl9X$yh%IWpyaVUpWf;Fuqq~+XP>W2%y#^f>n*)jr8voQm;{ju-|W%c)X>By4Gtjhw&RnL>TVnQ*8 zin5<$gWlKr6Gfh)v)*~Z?K+~&3@ImpYdIf{bMn`F?45O+qUqfj>z|dDVu0m>0Be+Q ziBE=C5B&y+JD1$wp6_u3*(7dl=6w3kinX2j~wwu5e;X3}@3UV>37| zp9Fa{o9u0U265(Ay{as_?w2LE(+0l~wGsl{0f=Xtv>WYWB?;4v>o4##as1>?`5%W> z*ift|CY-TJBAT)Mh$uGmL{5v$lxKct2aS5h07DptC?yVHn)Or}(*f1+@v-}A54PGF zE_sp|&fm7H3U8XfMFy~mLIYf5hs00=;g$zz2bsakw$fo^<(kSWhLP1edskuM zXrzz$$H?yH6&2R3=l7F)*{&@Sut3Yt3WE8CVF~_Ni3l&CaMV3lm2%PkbavN{9)uL6 z&_--hzO=o`mX@&P5?f49z}D9+=;>6Z>?h5TfaQVUie(zOE#k6D&F`|4cv`lr88~{( z8@pA$2>h3joNzQD^n|vCN?}}xwISAk)>fJ!aM(mcjc{ZP>;P#^lPC1|Vt=Hwlw^}2 zjQcbu1OhZ%NBmypn4A`xUotpvYFV0YN#p@rDZh+LWw>8QFGn6I4@VsM?;A;SOjH}I zet++{_!Tn{#aP;l-bmyo{mYwde3o5ntsmWohFXYgb|P3$HXswyuPuX8pZy_5kjW4+ ze100MZdrHM3F69Uf>@s;4xkN#1>C}F{aZuCS?|bw!Qb^OwX07|&(u9*7LeS8$3AyG ze~ssPfYFZ*I-4(!X5q5JkUXT<_qoam>wL4}O3mL-aD%tR+sXYpyZNR_05SI*w2B4& znNbe2)}nmHg^_XfVbkB62*)_q>Rb68KJlUXL+YD44LTpp9m4wxJ>RgFDi*Fj^v_o6 z%n&>jwlYlav3kYQk;!vOHJw9@8YBEg-0xEVhS9AXA|A57yX=1A#bllLd-$+31Qzfl z=5K?8riz!oK^W;2^r8^8rh3G9LY5)pk>niwFiO6IFC%H8^?@{>Y4R{uB<9m?`RgZ0 z+YmYO=%V|g3#Gvo2r(L(W#C>$rwJAM`TWpBM`wCSC#=Qg#-9f2w;*DM=Xq_4$BeWk zge*nSu>^A94+$@;@VdgQ=IZjZ9CYIqNi{X98T1RT6nOeuywcA5DZevsLRQKBOVl{|E zm9Oc1a0fm<0{ubF!gti#jK{kK)nDX#y@IQZ>$Ir`eQE0Um=ZZS5LOl1fL>&Jv)7SA&7-B?zE z>O8J#J^gFiH)21}*Mc68`_CkvJheCzLbkQud#PJ&4|xOfJ+`k&Z$gSTxx-W@z4HurZP-rc735*qU(6{MEDu}e4F4udqM zf<6BZ6Ml$EoI4xw#UaxUCIJS8vFvjO>fw-V4-|=277WPy8+3Xp9lX5A zurO6zte5dQYXL>RRzDD9lsX2hu4QZHWpK;w`wq2=OpJi~fM9MFW&zs?Xc*uF%U_=g zA-cna?i9PfnspzoZ3{OysO1~dh}Ww@$`kP$#36@E%80E5XB}OD)q4)t|rY zB4T=)^8T5+-=J(mX74kmcNtcovIn*)6t~DlaHy%$STMJV;(+hb5=MAmbEV(}7XpGh z27>V`s3_N(|1#f@Z+;c?;|L4lV3J3N{@pE-GR(Wpew~91*C=-VnmH}tC_5RWzFv@! zCUr$&;HO3H5Bv55y}H6$G-pJRLy|K_EK1{iG&ZUqKajh)mRa?UL!n6sFQJ0VB6Fy$ zdYOP99^Qe~EdOF+#t^n0k&?0-(mQqdPnu5FC$9sdGFP)+XEOYs^xJ!_mYBR{EW<)Jya?w5RhZE@BrHJQG@&DDUe;>-reuaKSzjG zL7cRpELp^!@N^2We?;-xY+nOy*r#G5N)gROhQ zQGHxhq}5mP|Ld9+NkPe&vhd0*{+vsXfNvr6Pl<#w5vXiC1S;KVn46osLsm??k4w-_ zCu^AydVS6xg8bIDS>fxm5jq=+_BU*}= z`qzVrHLeu-tbe<0eU{6-k%dNjlkt?7x4Pg zUnmlIO{^Ob(6A)973b=`joB2)oWe>wpFNacLS_20_-GT$`Ng$77n=$mmzUuXbxu&u zyM7fM6=#y}Z3tb+l;Fh~av!S$bdzI}*z1;_QEIDWxzxbUSm%9!tb zOEI3?t%HII_7GBnf0$sSsbBmAN+-^dLBc_qLE zFh*g)N3g@+zhHu-ixXg_;Sbnv0xg#SI&T+%eB9M<*`rcLmLjY_0ds_MXJdUZJ?_`O zb4crn<=O4r(h6+l-@iQH@A*N0Az#pEGe@YyVS|tO^<{}{%gwuPCg)Bd^zh!9Bg@x3 zw#UzdR2A3C({oNJ@2=m8j;UPbbWE~8+MnHQc^wt90ni?YF4D=Gl<*|3>U7yLscv^5 zPWhKP3f6CWRf4wns6b^!Mvm&SRviR5JHg{Hi$`u9)d!7@#`Fw+2}B3*a%PR4XFQhgCIkauoyLq z462`uDLv5!gn{&TI$(d?A-g0!jKY9?oPzfp65H%`Owh5-JC6tyck=Lg0dTQpi;z^L3bip6>OXi1r z0ksyyMk?uFZ#~f zV|N4L7kX_X*+$@>A}Plw5FPC|r02djWz&*@yp4%|10};izedrsytP=^(NX5bgP z&tdCj6^j0@ae%|HK--@97)=zD#&9RupXEsCbLE)y8Pztxm$wni{HS+F-@NI%X4clx z?O4qfG?^FOvg>AA0j+GSK(N@YY#nxU$?nq~&Cc?sFFjI>k!oUlcdSE%?4ZBVTy@W1 zCcX}BCld7TwSOxtQ)fdp`)fcU+(%S1QX~2O zPg#cnIDg`&SY8!%#sHFK{K>M%H%>J#4NvsZ+ziU`ajB zQhs9$_3WSUdd;Ck(8fpeKYDzx&f~O#{a?3k0o5O3=rfsKBE+<7$TsHvedvf